Function at 0x429214
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
mov ebp, edx
mov dword [esp + 0x14], ebp
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
cmp ebp, 0x10
ja 0x4294d1
cmp ebp, 8
jbe 0x42935e
mov eax, dword [esp + 0x90]
push 0x9e3779b1
push 0x85ebca87
mov ecx, dword [eax + 0x30]
mov esi, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
xor esi, dword [eax + 0x20]
xor edx, dword [eax + 0x24]
mov ebp, dword [eax + 0x38]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
mov ebx, dword [edi + eax - 8]
mov ecx, ebx
mov eax, dword [edi + eax - 4]
xor eax, dword [edi + 4]
xor ecx, dword [edi]
xor eax, edx
push eax
xor ecx, esi
lea eax, [esp + 0x64]
push ecx
push eax
call fcn.0042459f
mov esi, eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0x4c]
add esp, 0x14
movsd dword es:[edi], dword [esi]
lea ecx, [eax - 1]
shl ecx, 0x16
push 0xc2b2ae3d
movsd dword es:[edi], dword [esi]
push 0x27d4eb4f
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0
adc esi, ecx
mov ecx, dword [edx + eax - 4]
xor ecx, dword [esp + 0x28]
xor ebx, ebp
xor ebx, dword [esp + 0x24]
mov edx, 0x85ebca77
xor ecx, dword [esp + 0x2c]
mov eax, ebx
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mul edx
add eax, 0
adc edx, ecx
add ebp, eax
mov ecx, ebp
adc ebx, edx
bswap ecx
mov eax, ebx
xor esi, ecx
bswap eax
xor edi, eax
lea eax, [esp + 0x70]
push esi
push edi
push eax
call fcn.0042459f
mov esi, eax
lea edi, [esp + 0x3c]
add esp, 0x14
movsd dword es:[edi], dword [esi]
push 0xc2b2ae3d
push 0x27d4eb4f
push ebx
movsd dword es:[edi], dword [esi]
push ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0042a988
mov edi, dword [esp + 0x30]
push dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
add edi, eax
push dword [esp + 0x2c]
adc esi, edx
call fcn.00424639
push esi
push edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.00424639
mov dword [esp + 0x40], eax
lea esi, [esp + 0x38]
mov dword [esp + 0x44], edx
jmp 0x4294bd
cmp ebp, 4
jb 0x42942f
mov eax, dword [esp + 0x90]
xor edx, edx
add edx, dword [edi]
mov ecx, ebp
mov esi, dword [edi + ebp - 4]
adc esi, 0
shl ecx, 2
xor edx, dword [eax + 0x18]
xor esi, dword [eax + 0x1c]
xor edx, dword [eax + 0x10]
xor esi, dword [eax + 0x14]
xor eax, eax
add ecx, 0x85ebca87
adc eax, 0x9e3779b1
push eax
push ecx
push esi
push edx
lea eax, [esp + 0x88]
push eax
call fcn.0042459f
mov esi, eax
lea edi, [esp + 0x3c]
add esp, 0x14
movsd dword es:[edi], dword [esi]
push 0x9fb21c65
push 0x1e98df25
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
shld ecx, eax, 1
add eax, eax
add ebx, eax
mov edx, ebx
adc edi, ecx
xor eax, eax
mov esi, edi
shrd edx, esi, 3
xor edx, dword [esp + 0x30]
shr esi, 3
xor esi, dword [esp + 0x34]
mov ecx, esi
xor eax, esi
shr ecx, 3
xor ecx, edx
push eax
push ecx
call fcn.0042a988
mov ecx, eax
mov esi, edx
shrd ecx, esi, 0x1c
push edi
shr esi, 0x1c
xor ecx, eax
xor esi, edx
mov dword [esp + 0x2c], ecx
push ebx
mov dword [esp + 0x34], esi
call fcn.00424639
pop ecx
pop ecx
mov dword [esp + 0x30], eax
lea esi, [esp + 0x28]
mov dword [esp + 0x34], edx
jmp 0x4294c0
test ebp, ebp
je 0x42947c
mov eax, ebp
shr eax, 1
push 0
movzx ebx, byte [eax + edi]
movzx eax, byte [edi]
shl ebx, 8
or ebx, eax
movzx eax, byte [edi + ebp - 1]
shl ebx, 8
or ebx, ebp
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 4]
xor ecx, dword [eax]
mov edi, dword [eax + 8]
xor ecx, ebx
mov esi, dword [eax + 0xc]
push ecx
call fcn.0042653a
bswap ebx
rol ebx, 0xd
xor ebx, esi
xor ebx, edi
push 0
push ebx
jmp 0x4294a4
mov ebx, dword [esp + 0x90]
mov eax, dword [ebx + 0x4c]
xor eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x48]
xor ecx, dword [ebx + 0x40]
mov edi, dword [ebx + 0x58]
mov esi, dword [ebx + 0x5c]
push eax
push ecx
call fcn.0042653a
xor edi, dword [ebx + 0x50]
xor esi, dword [ebx + 0x54]
push esi
push edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
call fcn.0042653a
lea esi, [esp + 0x48]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
add esp, 0x10
lea edi, [esp + 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x48]
jmp 0x42993d
cmp ebp, 0x80
ja 0x4298f7
push 0x9e3779b1
push 0x85ebca87
push 0
push ebp
call fcn.0042a988
mov dword [esp + 0x28], eax
xorps xmm0, xmm0
mov dword [esp + 0x2c], edx
movlpd qword [esp + 0x30], xmm0
cmp ebp, 0x20
jbe 0x4297ac
cmp ebp, 0x40
jbe 0x4296d1
cmp ebp, 0x60
jbe 0x4295f6
mov ecx, dword [esp + 0x90]
lea esi, [esp + 0x28]
lea edi, [esp + 0x38]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx + 0x6c]
mov edx, dword [ecx + 0x68]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov esi, dword [ecx + 0x60]
mov ecx, dword [ecx + 0x64]
mov ebx, dword [edi + ebp - 0x38]
mov edi, dword [edi + ebp - 0x34]
mov ebp, dword [esp + 0x14]
xor eax, dword [ebp + 0x3c]
xor edx, dword [ebp + 0x38]
push eax
mov eax, ebp
push edx
xor ecx, dword [eax + 0x34]
xor esi, dword [eax + 0x30]
push ecx
push esi
call fcn.004245fe
add eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x28]
adc edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
add ebx, dword [ecx + ebp - 0x40]
adc edi, dword [ecx + ebp - 0x3c]
xor eax, ebx
mov ecx, dword [esp + 0xa0]
xor edx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + 0x7c]
mov ebx, dword [edi + 0x38]
mov edx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x70]
mov ecx, dword [ecx + 0x74]
mov edi, dword [edi + 0x3c]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x24]
xor eax, dword [ebx + ebp - 0x34]
xor edx, dword [ebx + ebp - 0x38]
push eax
mov eax, ebx
push edx
xor ecx, dword [eax + ebp - 0x3c]
xor esi, dword [eax + ebp - 0x40]
push ecx
push esi
call fcn.004245fe
mov ecx, dword [esp + 0x34]
lea esi, [esp + 0x58]
mov ebx, dword [esp + 0x44]
add esp, 0x20
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
add ebx, dword [ecx + 0x30]
adc edi, dword [ecx + 0x34]
xor eax, ebx
xor edx, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
lea edi, [esp + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x90]
lea esi, [esp + 0x28]
lea edi, [esp + 0x38]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ecx + 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov esi, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x44]
mov ebx, dword [edi + ebp - 0x28]
mov edi, dword [edi + ebp - 0x24]
mov ebp, dword [esp + 0x14]
xor eax, dword [ebp + 0x2c]
xor edx, dword [ebp + 0x28]
push eax
mov eax, ebp
push edx
xor ecx, dword [eax + 0x24]
xor esi, dword [eax + 0x20]
push ecx
push esi
call fcn.004245fe
add eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x28]
adc edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
add ebx, dword [ecx + ebp - 0x30]
adc edi, dword [ecx + ebp - 0x2c]
xor eax, ebx
mov ecx, dword [esp + 0xa0]
xor edx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + 0x5c]
mov ebx, dword [edi + 0x28]
mov edx, dword [ecx + 0x58]
mov esi, dword [ecx + 0x50]
mov ecx, dword [ecx + 0x54]
mov edi, dword [edi + 0x2c]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x24]
xor eax, dword [ebx + ebp - 0x24]
xor edx, dword [ebx + ebp - 0x28]
push eax
mov eax, ebx
push edx
xor ecx, dword [eax + ebp - 0x2c]
xor esi, dword [eax + ebp - 0x30]
push ecx
push esi
call fcn.004245fe
mov ecx, dword [esp + 0x34]
lea esi, [esp + 0x58]
mov ebx, dword [esp + 0x44]
add esp, 0x20
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
add ebx, dword [ecx + 0x20]
adc edi, dword [ecx + 0x24]
xor eax, ebx
xor edx, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
lea edi, [esp + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x90]
lea esi, [esp + 0x28]
lea edi, [esp + 0x38]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx + 0x2c]
mov edx, dword [ecx + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov esi, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov ebx, dword [edi + ebp - 0x18]
mov edi, dword [edi + ebp - 0x14]
mov ebp, dword [esp + 0x14]
xor eax, dword [ebp + 0x1c]
xor edx, dword [ebp + 0x18]
push eax
mov eax, ebp
push edx
xor ecx, dword [eax + 0x14]
xor esi, dword [eax + 0x10]
push ecx
push esi
call fcn.004245fe
add eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x28]
adc edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
add ebx, dword [ecx + ebp - 0x20]
adc edi, dword [ecx + ebp - 0x1c]
xor eax, ebx
mov ecx, dword [esp + 0xa0]
xor edx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + 0x3c]
mov ebx, dword [edi + 0x18]
mov edx, dword [ecx + 0x38]
mov esi, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x34]
mov edi, dword [edi + 0x1c]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x24]
xor eax, dword [ebx + ebp - 0x14]
xor edx, dword [ebx + ebp - 0x18]
push eax
mov eax, ebx
push edx
xor ecx, dword [eax + ebp - 0x1c]
xor esi, dword [eax + ebp - 0x20]
push ecx
push esi
call fcn.004245fe
mov ecx, dword [esp + 0x34]
lea esi, [esp + 0x58]
mov ebx, dword [esp + 0x44]
add esp, 0x20
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
add ebx, dword [ecx + 0x10]
adc edi, dword [ecx + 0x14]
xor eax, ebx
xor edx, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
lea edi, [esp + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x90]
lea esi, [esp + 0x28]
lea edi, [esp + 0x48]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
mov ebx, dword [edi + ebp - 8]
mov edi, dword [edi + ebp - 4]
mov ebp, dword [esp + 0x14]
xor eax, dword [ebp + 0xc]
xor edx, dword [ebp + 8]
push eax
mov eax, ebp
push edx
xor ecx, dword [eax + 4]
xor esi, dword [eax]
push ecx
push esi
call fcn.004245fe
mov ebp, dword [esp + 0x28]
mov ecx, eax
add ecx, dword [esp + 0x38]
mov eax, edx
mov edx, dword [esp + 0x24]
adc eax, dword [esp + 0x3c]
add ebx, dword [edx + ebp - 0x10]
adc edi, dword [edx + ebp - 0xc]
xor ecx, ebx
xor eax, edi
mov dword [esp + 0x30], ecx
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x2c], eax
mov ebx, dword [edi + 8]
mov eax, dword [ecx + 0x1c]
mov edx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x24]
xor eax, dword [ebx + ebp - 4]
xor edx, dword [ebx + ebp - 8]
push eax
mov eax, ebx
push edx
xor ecx, dword [eax + ebp - 0xc]
xor esi, dword [eax + ebp - 0x10]
push ecx
push esi
call fcn.004245fe
mov ecx, dword [esp + 0x34]
add esp, 0x20
add eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
adc edx, dword [esp + 0x54]
add ebx, dword [ecx]
push 0x85ebca77
adc edi, dword [ecx + 4]
xor eax, ebx
xor edx, edi
mov ebp, eax
add ebp, dword [esp + 0x24]
mov ebx, edx
push 0xc2b2ae63
adc ebx, dword [esp + 0x24]
push edx
push eax
call fcn.0042a988
push 0x9e3779b1
push 0x85ebca87
push dword [esp + 0x24]
mov edi, eax
mov esi, edx
push dword [esp + 0x2c]
call fcn.0042a988
push 0xc2b2ae3d
push 0x27d4eb4f
add edi, eax
mov eax, dword [esp + 0x20]
push 0
push eax
adc esi, edx
call fcn.0042a988
add edi, eax
push ebx
push ebp
adc esi, edx
call fcn.00424639
push esi
push edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
call fcn.00424639
add esp, 0x10
neg eax
mov dword [esp + 0x50], eax
adc edx, 0
neg edx
mov dword [esp + 0x54], edx
jmp 0x4294c8
cmp ebp, 0xf0
ja 0x42991a
push 0
push 0
push ecx
push dword [esp + 0x9c]
lea eax, [esp + 0x58]
push eax
call fcn.004284b4
add esp, 0x14
jmp 0x42993b
push dword [esp + 0x94]
lea eax, [esp + 0x2c]
push dword [esp + 0x94]
push 0
push 0
push ebp
push edi
push eax
call fcn.004288f0
add esp, 0x1c
mov esi, eax
mov eax, dword [esp + 0x8c]
lea edi, [esp + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, eax
lea esi, [esp + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret