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

Disassembly:
sub esp, 0x30
cmp dword [esp + 0x38], 0x10
je 0x416f93
mov eax, 0x1002
add esp, 0x30
ret
mov ecx, dword [esp + 0x34]
push ebx
push ebp
push esi
mov ebp, dword [ecx]
mov eax, ebp
mov ebx, dword [ecx + 4]
rol eax, 0x18
mov esi, dword [ecx + 0xc]
rol ebp, 8
xor ebp, eax
and ebp, 0xff00ff
xor ebp, eax
mov eax, ebx
rol eax, 0x18
rol ebx, 8
xor ebx, eax
mov dword [esp + 0x30], ebp
push edi
mov edi, dword [ecx + 8]
lea edx, [ebp + 0x61c88647]
and ebx, 0xff00ff
xor ebx, eax
mov eax, edi
rol eax, 0x18
rol edi, 8
xor edi, eax
mov dword [esp + 0x14], ebx
and edi, 0xff00ff
xor edi, eax
mov eax, esi
rol eax, 0x18
add edx, edi
rol esi, 8
xor esi, eax
mov dword [esp + 0x1c], edi
and esi, 0xff00ff
xor esi, eax
mov eax, edx
shr eax, 0x10
sub ebx, esi
movzx ecx, al
sub ebx, 0x61c88647
mov eax, edx
mov dword [esp + 0x18], esi
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x3c], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebp
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0x14]
shr eax, 8
shl ecx, 0x18
xor ecx, eax
shl ebp, 0x18
mov eax, dword [esp + 0x14]
shr eax, 8
xor ebp, eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x20], ebp
lea edx, [ecx - 0x3c6ef373]
mov ebx, ebp
add edx, edi
sub ebx, esi
mov eax, edx
add ebx, 0x3c6ef373
shr eax, 0x10
mov edi, esi
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [esp + 0x1c]
mov ecx, dword [ecx*4 + 0x5f2810]
shr edi, 0x18
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
shr esi, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x44], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, ebp
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x1c]
shl eax, 8
mov dword [edx + 0x48], ecx
xor edi, eax
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
add edx, 0x8722191a
shl ecx, 8
add edx, edi
xor esi, ecx
mov dword [esp + 0x24], edi
mov eax, edx
mov dword [esp + 0x38], esi
shr eax, 0x10
sub ebx, esi
movzx ecx, al
add ebx, 0x78dde6e6
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x4c], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
xor ecx, dword [eax*4 + 0x5f2010]
mov dword [edx + 0x50], ecx
mov eax, dword [esp + 0x48]
mov ecx, ebp
shr eax, 8
mov ebp, dword [esp + 0x48]
shl ecx, 0x18
xor ecx, eax
shl ebp, 0x18
mov eax, dword [esp + 0x20]
shr eax, 8
xor ebp, eax
mov dword [esp + 0x10], ecx
lea edx, [ecx + 0xe443234]
mov dword [esp + 0x28], ebp
add edx, edi
mov ebx, ebp
mov eax, edx
sub ebx, esi
shr eax, 0x10
sub ebx, 0xe443234
movzx ecx, al
mov edi, esi
mov eax, edx
mov esi, dword [esp + 0x24]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
shr edi, 0x18
shr esi, 0x18
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x54], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, ebp
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x24]
shl eax, 8
xor edi, eax
mov dword [edx + 0x58], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
add edx, 0x1c886467
shl eax, 8
add edx, edi
xor esi, eax
mov dword [esp + 0x2c], edi
mov eax, edx
mov dword [esp + 0x3c], esi
shr eax, 0x10
sub ebx, esi
movzx ecx, al
sub ebx, 0x1c886467
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
mov dword [edx + 0x5c], ecx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x10]
shr eax, 8
mov dword [edx + 0x60], ecx
mov ecx, ebp
mov ebp, dword [esp + 0x10]
shl ecx, 0x18
xor ecx, eax
shl ebp, 0x18
mov eax, dword [esp + 0x28]
shr eax, 8
xor ebp, eax
mov dword [esp + 0x30], ecx
lea edx, [ecx + 0x3910c8cd]
mov ebx, ebp
add edx, edi
sub ebx, esi
mov eax, edx
sub ebx, 0x3910c8cd
shr eax, 0x10
mov edi, esi
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [esp + 0x2c]
mov ecx, dword [ecx*4 + 0x5f2810]
shr edi, 0x18
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
shr esi, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x64], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, ebp
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x2c]
shl eax, 8
xor edi, eax
mov dword [edx + 0x68], ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
add edx, 0x72219199
shl eax, 8
add edx, edi
xor esi, eax
mov eax, edx
shr eax, 0x10
sub ebx, esi
movzx ecx, al
sub ebx, 0x72219199
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x6c], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, dword [esp + 0x34]
sub ebx, esi
add ebx, 0x1bbcdccf
xor ecx, dword [eax*4 + 0x5f2010]
mov dword [edx + 0x70], ecx
mov edx, dword [esp + 0x14]
add edx, 0xe4432331
add edx, edi
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x74], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, dword [esp + 0x34]
sub ebx, dword [esp + 0x1c]
add ebx, 0x3779b99e
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x18]
add eax, 0xc8864662
mov dword [edx + 0x78], ecx
mov edx, dword [esp + 0x14]
add edx, eax
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x7c], ecx
movzx ecx, al
mov ecx, dword [ecx*4 + 0x5f2810]
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, dword [esp + 0x48]
sub ebx, dword [esp + 0x1c]
add ebx, 0x6ef3733c
xor ecx, dword [eax*4 + 0x5f2010]
mov dword [edx + 0x80], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add ecx, 0x910c8cc4
add edx, ecx
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x84], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, dword [esp + 0x38]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x24]
sub eax, 0x22191988
mov dword [edx + 0x88], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
add edx, 0x22191988
add edx, ebx
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x48]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x4c]
mov dword [eax + 0x8c], ecx
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
add ebx, 0x4432330f
movzx eax, dl
mov edx, dword [esp + 0x28]
add edx, ebx
mov ebx, dword [esp + 0x10]
sub ebx, dword [esp + 0x24]
xor ecx, dword [eax*4 + 0x5f2010]
sub ebx, 0x4432330f
mov eax, dword [esp + 0x4c]
mov dword [eax + 0x90], ecx
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0x94], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, dword [esp + 0x3c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x2c]
mov dword [edx + 0x98], ecx
add eax, 0x779b99e3
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
add edx, 0x8864661d
add edx, ebx
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x10]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, dword [esp + 0x4c]
mov dword [eax + 0x9c], ecx
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
lea edx, [ebx + 0x10c8cc3a]
xor ecx, dword [eax*4 + 0x5f2010]
add edx, ebp
mov eax, dword [esp + 0x4c]
mov dword [eax + 0xa0], ecx
mov ebx, dword [esp + 0x30]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
sub ebx, dword [esp + 0x2c]
mov ecx, dword [ecx*4 + 0x5f2810]
sub ebx, 0x10c8cc3a
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x4c]
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [edx + 0xa4], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, dword [esp + 0x30]
sub ebx, edi
sub ebx, 0x21919873
xor ecx, dword [eax*4 + 0x5f2010]
mov dword [edx + 0xa8], ecx
lea edx, [ebp + 0x21919873]
add edx, esi
mov ebp, dword [esp + 0x4c]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
mov edx, dword [esp + 0x34]
add edx, 0x432330e5
add edx, esi
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [ebp + 0xac], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
mov ebx, dword [esp + 0x14]
sub ebx, edi
sub ebx, 0x432330e5
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, edx
shr eax, 0x10
mov dword [ebp + 0xb0], ecx
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, edx
shr eax, 0x18
pop edi
pop esi
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, dl
xor ecx, dword [eax*4 + 0x5f2010]
mov eax, ebx
shr eax, 0x10
mov dword [ebp + 0xb4], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x5f2810]
xor ecx, dword [eax*4 + str.0_b88]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + str.880_b_]
movzx eax, bl
xor ecx, dword [eax*4 + 0x5f2010]
xor eax, eax
mov dword [ebp + 0xb8], ecx
pop ebp
pop ebx
add esp, 0x30
ret