Function at 0x4223ef
Capabilities:
Hash data using tiger
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x84
push ebx
push ebp
push esi
push edi
mov eax, ecx
mov dword [esp + 0x84], eax
mov ecx, dword [edx]
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edx + 0x18]
mov ebx, dword [edx + 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx + 0x20]
mov ebp, dword [edx + 0xc]
mov dword [esp + 0x74], ecx
mov ecx, dword [edx + 0x24]
mov dword [esp + 0x5c], ebx
mov ebx, dword [eax]
mov dword [esp + 0x54], ecx
mov ecx, dword [edx + 0x28]
mov dword [esp + 0x70], ebp
mov ebp, dword [eax + 4]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x24], ebx
mov ebx, ebp
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 0x2c]
mov dword [esp + 0x18], ebx
mov ebx, dword [eax + 8]
mov dword [esp + 0x50], ecx
mov ecx, dword [edx + 0x30]
mov dword [esp + 0x80], ebp
mov ebp, dword [eax + 0xc]
mov dword [esp + 0x20], ebx
mov ebx, dword [eax + 0x10]
mov esi, dword [edx + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x38], ecx
mov ecx, dword [edx + 0x34]
mov edi, dword [edx + 0x14]
mov dword [esp + 0x34], ecx
mov ecx, dword [edx + 0x38]
mov edx, dword [edx + 0x3c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x10], eax
xor al, al
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x60], esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x30], edx
mov byte [esp + 0x1f], al
test al, al
je 0x42260a
xor ecx, 0xa5a5a5a5
mov eax, edx
mov edx, dword [esp + 0x40]
xor eax, 0xa5a5a5a5
sub edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], edx
sbb ecx, eax
xor ebx, edx
xor ebp, ecx
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x74]
add esi, ebx
mov ecx, ebx
mov eax, ebp
adc edi, ebp
not ecx
not eax
shld eax, ecx, 0x13
shl ecx, 0x13
xor eax, edi
xor ecx, esi
sub dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x4c]
sbb ecx, eax
xor edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x54]
xor eax, ecx
mov dword [esp + 0x4c], ecx
add dword [esp + 0x44], edx
mov ecx, edx
mov dword [esp + 0x54], eax
not ecx
adc dword [esp + 0x50], eax
not eax
shrd ecx, eax, 0x17
xor ecx, dword [esp + 0x44]
shr eax, 0x17
xor eax, dword [esp + 0x50]
sub dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x30]
sbb dword [esp + 0x34], eax
xor ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0x38]
add dword [esp + 0x40], eax
mov dword [esp + 0x30], ecx
adc dword [esp + 0x3c], ecx
mov ecx, eax
mov dword [esp + 0x48], eax
not ecx
mov eax, dword [esp + 0x30]
not eax
shld eax, ecx, 0x13
xor eax, dword [esp + 0x3c]
shl ecx, 0x13
xor ecx, dword [esp + 0x40]
sub ebx, ecx
mov dword [esp + 0x5c], ebx
sbb ebp, eax
xor esi, ebx
xor edi, ebp
mov dword [esp + 0x70], ebp
add dword [esp + 0x2c], esi
mov ecx, esi
not ecx
mov dword [esp + 0x60], esi
adc dword [esp + 0x4c], edi
mov eax, edi
not eax
mov dword [esp + 0x6c], edi
shrd ecx, eax, 0x17
xor ecx, dword [esp + 0x2c]
shr eax, 0x17
xor eax, dword [esp + 0x4c]
sub edx, ecx
mov ecx, dword [esp + 0x54]
sbb ecx, eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x54], ecx
xor eax, edx
mov edx, dword [esp + 0x50]
xor edx, ecx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x34]
adc eax, edx
mov dword [esp + 0x38], ecx
xor ecx, 0x89abcdef
mov dword [esp + 0x34], eax
xor eax, 0x1234567
sub dword [esp + 0x48], ecx
sbb dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
xor edx, dword [esp + 0x40]
mov dword [esp + 0x10], eax
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x14], edx
mov edx, dword [ecx*8 + 0x432800]
mov ecx, dword [ecx*8 + 0x432804]
xor edx, dword [eax*8 + 0x431800]
xor ecx, dword [eax*8 + 0x431804]
mov eax, dword [esp + 0x10]
and dword [esp + 0x68], 0
movzx eax, al
push 9
xor edx, dword [eax*8 + 0x432000]
xor ecx, dword [eax*8 + 0x432004]
mov eax, dword [esp + 0x18]
movzx eax, al
xor edx, dword [eax*8 + 0x431000]
xor ecx, dword [eax*8 + 0x431004]
mov eax, dword [esp + 0x28]
sub eax, edx
mov edx, dword [esp + 0x1c]
sbb edx, ecx
mov cl, byte [esp + 0x23]
xor eax, ebx
xor edx, ebp
mov dword [esp + 0x28], eax
cmp cl, 1
pop eax
mov dword [esp + 0x18], edx
push 7
pop edx
cmove eax, edx
test cl, cl
push 5
pop edx
cmove eax, edx
and dword [esp + 0x68], 0
cdq
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x10]
mov ecx, eax
shr ecx, 0x18
shr eax, 8
movzx eax, al
push ebp
mov edx, dword [ecx*8 + 0x431000]
mov ecx, dword [ecx*8 + 0x431004]
xor ecx, dword [eax*8 + 0x431804]
xor edx, dword [eax*8 + 0x431800]
mov eax, dword [esp + 0x18]
shr eax, 0x18
push edi
mov dword [esp + 0x60], edi
xor ecx, dword [eax*8 + 0x432004]
xor edx, dword [eax*8 + 0x432000]
mov eax, dword [esp + 0x1c]
shr eax, 8
movzx eax, al
xor edx, dword [eax*8 + 0x432800]
xor ecx, dword [eax*8 + 0x432804]
add edx, dword [esp + 0x28]
adc ecx, dword [esp + 0x30]
push ecx
push edx
call fcn.0042a988
mov ebx, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
movzx ecx, al
mov eax, dword [esp + 0x24]
shr eax, 0x10
movzx eax, al
mov esi, dword [ecx*8 + 0x432800]
xor esi, dword [eax*8 + 0x431800]
mov ecx, dword [ecx*8 + 0x432804]
xor ecx, dword [eax*8 + 0x431804]
mov eax, dword [esp + 0x18]
movzx eax, al
push ebp
push edi
xor ecx, dword [eax*8 + 0x432004]
xor esi, dword [eax*8 + 0x432000]
mov eax, dword [esp + 0x2c]
movzx eax, al
xor ecx, dword [eax*8 + 0x431004]
xor esi, dword [eax*8 + 0x431000]
mov eax, dword [esp + 0x20]
sub ebx, esi
sbb edx, ecx
mov ecx, eax
xor edx, dword [esp + 0x74]
shr ecx, 0x18
shr eax, 8
xor ebx, dword [esp + 0x68]
and dword [esp + 0x70], 0
movzx eax, al
mov dword [esp + 0x84], edx
mov edx, dword [ecx*8 + 0x431000]
mov ecx, dword [ecx*8 + 0x431004]
xor ecx, dword [eax*8 + 0x431804]
xor edx, dword [eax*8 + 0x431800]
mov eax, dword [esp + 0x2c]
shr eax, 0x18
xor ecx, dword [eax*8 + 0x432004]
xor edx, dword [eax*8 + 0x432000]
mov eax, dword [esp + 0x2c]
shr eax, 8
movzx eax, al
xor edx, dword [eax*8 + 0x432800]
xor ecx, dword [eax*8 + 0x432804]
add edx, dword [esp + 0x1c]
adc ecx, dword [esp + 0x18]
push ecx
push edx
call fcn.0042a988
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x7c]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov esi, dword [ecx*8 + 0x432800]
mov ecx, dword [ecx*8 + 0x432804]
xor ecx, dword [eax*8 + 0x431804]
xor esi, dword [eax*8 + 0x431800]
movzx eax, dl
xor ecx, dword [eax*8 + 0x432004]
xor esi, dword [eax*8 + 0x432000]
movzx eax, bl
xor ecx, dword [eax*8 + 0x431004]
xor esi, dword [eax*8 + 0x431000]
mov eax, dword [esp + 0x28]
sub eax, esi
mov esi, dword [esp + 0x10]
sbb esi, ecx
xor eax, dword [esp + 0x2c]
and dword [esp + 0x68], 0
mov ecx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], esi
xor dword [esp + 0x10], eax
mov eax, edx
shr ecx, 0x18
shr eax, 8
movzx eax, al
mov edx, dword [ecx*8 + 0x431000]
mov ecx, dword [ecx*8 + 0x431004]
xor edx, dword [eax*8 + 0x431800]
xor ecx, dword [eax*8 + 0x431804]
mov eax, ebx
shr eax, 0x18
push ebp
push edi
xor ecx, dword [eax*8 + 0x432004]
xor edx, dword [eax*8 + 0x432000]
mov eax, ebx
shr eax, 8
movzx eax, al
xor edx, dword [eax*8 + 0x432800]
xor ecx, dword [eax*8 + 0x432804]
add edx, dword [esp + 0x2c]
adc ecx, dword [esp + 0x20]
push ecx
push edx
call fcn.0042a988
mov dword [esp + 0x20], eax
mov edi, edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 0x10
movzx eax, al
push ebp
mov esi, dword [ecx*8 + 0x432800]
mov ecx, dword [ecx*8 + 0x432804]
xor ecx, dword [eax*8 + 0x431804]
xor esi, dword [eax*8 + 0x431800]
mov eax, dword [esp + 0x14]
movzx eax, al
push dword [esp + 0x5c]
xor ecx, dword [eax*8 + 0x432004]
xor esi, dword [eax*8 + 0x432000]
movzx eax, dl
xor ecx, dword [eax*8 + 0x431004]
xor esi, dword [eax*8 + 0x431000]
mov eax, dword [esp + 0x28]
sub eax, esi
sbb edi, ecx
xor eax, dword [esp + 0x7c]
xor edi, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov ecx, eax
shr ecx, 0x18
shr eax, 8
and dword [esp + 0x70], 0
movzx eax, al
mov edx, dword [ecx*8 + 0x431000]
mov ecx, dword [ecx*8 + 0x431004]
mov dword [esp + 0x80], edi
xor ecx, dword [eax*8 + 0x431804]
xor edx, dword [eax*8 + 0x431800]
mov edi, dword [esp + 0x30]
mov eax, edi
shr eax, 0x18
xor ecx, dword [eax*8 + 0x432004]
xor edx, dword [eax*8 + 0x432000]
mov eax, edi
shr eax, 8
movzx eax, al
xor edx, dword [eax*8 + 0x432800]
xor ecx, dword [eax*8 + 0x432804]
add edx, ebx
adc ecx, dword [esp + 0x84]
push ecx
push edx
call fcn.0042a988
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x78]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov esi, dword [ecx*8 + 0x432800]
xor esi, dword [eax*8 + 0x431800]
mov ecx, dword [ecx*8 + 0x432804]
xor ecx, dword [eax*8 + 0x431804]
movzx eax, dl
push ebp
push dword [esp + 0x5c]
xor ecx, dword [eax*8 + 0x432004]
xor esi, dword [eax*8 + 0x432000]
movzx eax, bl
xor ecx, dword [eax*8 + 0x431004]
xor esi, dword [eax*8 + 0x431000]
mov eax, dword [esp + 0x20]
sub eax, esi
mov esi, dword [esp + 0x1c]
sbb esi, ecx
xor eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov ecx, edx
mov eax, dword [esp + 0x58]
shr ecx, 0x18
and dword [esp + 0x70], 0
mov dword [esp + 0x1c], esi
xor dword [esp + 0x1c], eax
mov eax, edx
mov edx, dword [ecx*8 + 0x431000]
mov ecx, dword [ecx*8 + 0x431004]
shr eax, 8
movzx eax, al
xor ecx, dword [eax*8 + 0x431804]
xor edx, dword [eax*8 + 0x431800]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*8 + 0x432004]
xor edx, dword [eax*8 + 0x432000]
mov eax, ebx
shr eax, 8
movzx eax, al
xor edx, dword [eax*8 + 0x432800]
xor ecx, dword [eax*8 + 0x432804]
add edx, edi
adc ecx, dword [esp + 0x18]
push ecx
push edx
call fcn.0042a988
mov ebx, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
movzx ecx, al
mov eax, dword [esp + 0x18]
shr eax, 0x10
movzx eax, al
mov esi, dword [ecx*8 + 0x432800]
mov ecx, dword [ecx*8 + 0x432804]
xor ecx, dword [eax*8 + 0x431804]
xor esi, dword [eax*8 + 0x431800]
mov eax, dword [esp + 0x14]
movzx eax, al
xor ecx, dword [eax*8 + 0x432004]
xor esi, dword [eax*8 + 0x432000]
mov eax, dword [esp + 0x18]
movzx eax, al
xor ecx, dword [eax*8 + 0x431004]
xor esi, dword [eax*8 + 0x431000]
mov eax, dword [esp + 0x14]
sub ebx, esi
sbb edx, ecx
xor ebx, dword [esp + 0x38]
xor edx, dword [esp + 0x34]
mov ecx, eax
and dword [esp + 0x68], 0
shr ecx, 0x18
shr eax, 8
movzx eax, al
mov dword [esp + 0x24], edx
mov edx, dword [ecx*8 + 0x431000]
mov ecx, dword [ecx*8 + 0x431004]
xor edx, dword [eax*8 + 0x431800]
xor ecx, dword [eax*8 + 0x431804]
mov eax, dword [esp + 0x18]
shr eax, 0x18
xor edx, dword [eax*8 + 0x432000]
xor ecx, dword [eax*8 + 0x432004]
mov eax, dword [esp + 0x18]
shr eax, 8
movzx eax, al
push ebp
push dword [esp + 0x5c]
xor edx, dword [eax*8 + 0x432800]
xor ecx, dword [eax*8 + 0x432804]
add edx, dword [esp + 0x28]
adc ecx, dword [esp + 0x80]
push ecx
push edx
call fcn.0042a988
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov ecx, eax
shr ecx, 0x10
movzx esi, cl
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
movzx eax, al
mov edi, dword [esi*8 + 0x432800]
mov dword [esp + 0x28], edx
xor edi, dword [ecx*8 + 0x431800]
xor edi, dword [eax*8 + 0x432000]
mov edx, dword [esi*8 + 0x432804]
xor edx, dword [ecx*8 + 0x431804]
xor edx, dword [eax*8 + 0x432004]
mov ecx, dword [esp + 0x28]
movzx eax, bl
push ebp
push dword [esp + 0x5c]
xor edx, dword [eax*8 + 0x431004]
xor edi, dword [eax*8 + 0x431000]
mov eax, dword [esp + 0x28]
sub eax, edi
sbb ecx, edx
xor eax, dword [esp + 0x50]
xor ecx, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov ecx, eax
shr ecx, 0x18
shr eax, 8
and dword [esp + 0x70], 0
movzx eax, al
mov edx, dword [ecx*8 + 0x431000]
mov ecx, dword [ecx*8 + 0x431004]
xor ecx, dword [eax*8 + 0x431804]
xor edx, dword [eax*8 + 0x431800]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*8 + 0x432004]
xor edx, dword [eax*8 + 0x432000]
mov eax, ebx
shr eax, 8
movzx eax, al
xor edx, dword [eax*8 + 0x432800]
xor ecx, dword [eax*8 + 0x432804]
add edx, dword [esp + 0x20]
adc ecx, dword [esp + 0x1c]
push ecx
push edx
call fcn.0042a988
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov ecx, eax
shr ecx, 0x10
movzx esi, cl
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [esi*8 + 0x432800]
mov dword [esp + 0x10], edx
mov edx, dword [esi*8 + 0x432804]
xor edi, dword [ecx*8 + 0x431800]
xor edx, dword [ecx*8 + 0x431804]
movzx eax, al
xor edi, dword [eax*8 + 0x432000]
xor edx, dword [eax*8 + 0x432004]
mov eax, dword [esp + 0x20]
movzx eax, al
push ebp
push dword [esp + 0x5c]
xor edx, dword [eax*8 + 0x431004]
xor edi, dword [eax*8 + 0x431000]
sub dword [esp + 0x1c], edi
mov eax, dword [esp + 0x30]
mov ecx, eax
sbb dword [esp + 0x18], edx
shr ecx, 0x18
shr eax, 8
movzx eax, al
mov edx, dword [ecx*8 + 0x431000]
mov ecx, dword [ecx*8 + 0x431004]
xor ecx, dword [eax*8 + 0x431804]
xor edx, dword [eax*8 + 0x431800]
mov eax, dword [esp + 0x28]
shr eax, 0x18
xor ecx, dword [eax*8 + 0x432004]
xor edx, dword [eax*8 + 0x432000]
mov eax, dword [esp + 0x28]
shr eax, 8
movzx eax, al
xor edx, dword [eax*8 + 0x432800]
xor ecx, dword [eax*8 + 0x432804]
add edx, ebx
adc ecx, dword [esp + 0x2c]
push ecx
push edx
call fcn.0042a988
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x1f]
inc al
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
mov byte [esp + 0x1f], al
cmp al, 3
jl 0x4224c6
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x90]
xor ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
xor edx, dword [esp + 0x18]
mov dword [eax], ecx
mov ecx, dword [esp + 0x20]
sub ecx, dword [eax + 8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x28]
sbb edx, dword [eax + 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x8c]
add ecx, dword [esp + 0x14]
pop edi
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x84]
adc edx, dword [esp + 0xc]
pop esi
pop ebp
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
pop ebx
add esp, 0x84
ret