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

Disassembly:
sub esp, 0x2d4
mov eax, dword [0x42b9d0]
push ebx
push ebp
push esi
and eax, 0xb47c5868
mov dword [esp + 0x54], edx
push edi
push dword [esp + 0x2e8]
mov dword [0x42b9d0], eax
mov edi, ecx
add al, 3
mov dword [esp + 0x34], edi
mov byte [0x42b9e2], al
call fcn.0040702c
pop ecx
mov cl, byte [0x42b9d0]
mov edx, eax
add cl, 0x5e
mov dword [esp + 0x24], edx
mov byte [0x42b9e2], cl
mov ebx, 0xff
mov dword [esp + 0x5c], ebx
push 0x2e
pop esi
test edx, edx
je 0x416a10
push 0x2c
and dword [esp + 0x30], 0
xor cl, 0x6a
pop eax
mov word [esp + 0x34], ax
xor eax, eax
mov word [esp + 0x36], ax
movzx eax, cl
imul ecx, eax, 0x30
movzx eax, cl
and cl, 0x6f
and eax, 0x20602121
add cl, 0x1c
mov dword [0x42b9d0], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x38]
mov byte [0x42b9e2], cl
push eax
push edx
call fcn.004057dc
mov cl, byte [0x42b9d0]
mov esi, eax
and cl, 0xc8
add esp, 0xc
or cl, 8
mov byte [0x42b9e2], cl
test esi, esi
je 0x4169f0
mov dword [esp + 0x48], 0xa9c0b972
mov word [esp + 0x4c], 0xb972
mov byte [esp + 0x4e], 0xc0
xor edx, edx
movzx eax, byte [esp + edx + 0x48]
sub ax, 0x4d
and ax, bx
mov word [esp + edx*2 + 0x80], ax
inc edx
cmp edx, 7
jl 0x41661b
xor eax, eax
mov word [esp + 0x8e], ax
movzx eax, cl
and eax, 0x3030e45
or eax, 0xc8800088
mov dword [0x42b9d0], eax
or al, 0x26
push esi
mov byte [0x42b9e2], al
lea eax, [esp + 0x84]
push edi
push eax
call fcn.0042318b
mov cl, byte [0x42b9e2]
mov ebx, eax
and cl, 0xad
mov dword [esp + 0x48], ebx
add esp, 0xc
mov byte [0x42b9e2], cl
test ebx, ebx
je 0x4169ba
imul ecx, dword [0x42b9d0], 0x652b73ac
lea eax, [esp + 0x90]
push eax
push ebx
mov edx, 0x54e1cc7b
add ecx, 0x9c40a32
xor ecx, 0x40818497
mov dword [0x42b9d0], ecx
and cl, 0x54
mov byte [0x42b9e2], cl
xor ecx, ecx
inc ecx
call fcn.0041568d
call eax
mov cl, byte [0x42b9d0]
mov edx, 0x17299c7b
and cl, 0xb4
mov ebp, eax
mov byte [0x42b9e2], cl
xor ecx, ecx
inc ecx
call fcn.0041568d
mov cl, byte [0x42b9e2]
and cl, 0x74
mov dword [esp + 0x38], eax
movzx ecx, cl
imul ecx, ecx, 0x42
mov byte [0x42b9e2], cl
cmp ebp, 0xffffffff
je 0x4169a0
sub cl, 0x13
mov word [esp + 0x10], 0x9999
mov ebx, eax
push 0x2e
pop eax
mov word [esp + 0x54], ax
mov esi, 0xff
xor eax, eax
xor edx, edx
mov word [esp + 0x56], ax
movzx eax, byte [esp + edx + 0x10]
sub ax, 0x6b
and ax, si
mov word [esp + edx*2 + 0x40], ax
inc edx
cmp edx, 2
jl 0x416726
xor eax, eax
or cl, 0x5d
mov word [esp + 0x44], ax
movzx eax, cl
and eax, 0xce3b4816
mov byte [0x42b9e2], cl
mov dword [0x42b9d0], eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x41695b
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x41695b
movzx eax, byte [0x42b9e2]
or eax, 0x6f5f4c23
test byte [esp + 0x90], 0xa7
mov dword [0x42b9d0], eax
je 0x416941
add al, 0x3c
or al, 0x9d
add al, 0xe
mov byte [0x42b9e2], al
movzx edx, al
movzx eax, al
sub eax, 0x1b21876a
cmp dword [esp + 0xac], 0
mov dword [0x42b9d0], eax
jne 0x416941
cmp dword [esp + 0xb0], 0xa00000
jae 0x416941
mov dword [esp + 0x14], 0xd6ede69f
xor ecx, ecx
mov word [esp + 0x18], 0xe69f
mov byte [esp + 0x1a], 0xed
movzx eax, byte [esp + ecx + 0x14]
sub ax, 0x7a
and ax, si
mov word [esp + ecx*2 + 0x60], ax
inc ecx
cmp ecx, 7
jl 0x416801
xor eax, eax
or edx, 0x4b18ce07
mov word [esp + 0x6e], ax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x64]
mov dword [0x42b9d0], edx
push edi
push eax
call fcn.0042318b
mov ecx, dword [0x42b9d0]
mov edi, eax
xor ecx, 0xa2f3f171
add esp, 0xc
sub ecx, 0x34489ec3
mov dword [0x42b9d0], ecx
test edi, edi
je 0x41693d
mov dword [esp + 0x1c], 0xb6faf3ac
xor ecx, ecx
mov word [esp + 0x20], 0xf3ac
mov byte [esp + 0x22], 0xfa
movzx eax, byte [esp + ecx + 0x1c]
add ax, 0x79
and ax, si
mov word [esp + ecx*2 + 0x70], ax
inc ecx
cmp ecx, 7
jl 0x416879
mov cl, byte [0x42b9e2]
xor eax, eax
mov word [esp + 0x7e], ax
add cl, 2
movzx eax, cl
xor cl, 0xc4
and eax, 0x7587aa9d
mov byte [0x42b9e2], cl
mov dword [0x42b9d0], eax
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x5c]
lea eax, [esp + 0x78]
push eax
call fcn.0042318b
mov dl, byte [0x42b9e2]
mov esi, eax
movzx ecx, dl
add esp, 0xc
or ecx, 0x3ec11095
mov dword [0x42b9d0], ecx
test esi, esi
je 0x41692a
or dl, 0xcb
mov ecx, edi
movzx eax, dl
mov edx, esi
imul eax, eax, 0xed
movzx eax, al
and eax, 0x63748129
mov dword [0x42b9d0], eax
add al, 0x37
mov byte [0x42b9e2], al
call fcn.0041e300
and dword [0x42b9d0], 0x22fec0e6
push esi
call fcn.004056f0
pop ecx
mov ecx, dword [0x42b9d0]
add cl, 9
and cl, 0x12
push edi
mov byte [0x42b9e2], cl
call fcn.004056f0
pop ecx
mov edi, dword [esp + 0x30]
lea eax, [esp + 0x90]
push eax
push ebp
call ebx
test eax, eax
je 0x416975
mov cl, byte [0x42b9e2]
jmp 0x416710
movzx eax, byte [0x42b9e2]
xor eax, 0xadc5441f
mov dword [0x42b9d0], eax
add al, 0x55
mov byte [0x42b9e2], al
jmp 0x416941
movzx eax, byte [0x42b9e2]
xor ecx, ecx
and eax, 0x211c350c
mov edx, 0x83fbc401
push ebp
inc ecx
mov dword [0x42b9d0], eax
call fcn.0041568d
call eax
mov cl, byte [0x42b9e2]
mov ebx, dword [esp + 0x3c]
movzx eax, cl
or eax, 0x6b8d342b
push ebx
mov dword [0x42b9d0], eax
call fcn.004056f0
pop ecx
mov cl, byte [0x42b9e2]
movzx eax, cl
or eax, 0x85949179
mov dword [0x42b9d0], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x38]
push eax
push 0
call fcn.004057dc
mov cl, byte [0x42b9e2]
mov esi, eax
add esp, 0xc
mov ebx, 0xff
test esi, esi
jne 0x416619
push dword [esp + 0x24]
movzx eax, cl
add eax, 0xfbf1ea6
mov dword [0x42b9d0], eax
call fcn.004056f0
pop ecx
mov cl, byte [0x42b9e2]
push 0x2e
pop esi
movzx edx, cl
and edx, 0x57a9ac6f
cmp byte [esp + 0x2ec], 0
mov dword [0x42b9d0], edx
je 0x416ddc
mov dword [esp + 0x24], 0xa0b7b069
xor ecx, ecx
mov byte [esp + 0x28], 0x6e
movzx eax, byte [esp + ecx + 0x24]
sub ax, 0x44
and ax, bx
mov word [esp + ecx*2 + 0x48], ax
inc ecx
cmp ecx, 5
jl 0x416a3c
xor eax, eax
mov word [esp + 0x52], ax
movzx eax, dl
imul eax, eax, 0xb7
push edi
mov byte [0x42b9e2], al
movzx eax, al
imul eax, eax, 0x5840fd07
add eax, 0x760bf443
mov dword [0x42b9d0], eax
lea eax, [esp + 0x4c]
push eax
call fcn.0042318b
pop ecx
pop ecx
mov cl, byte [0x42b9e2]
mov ebp, eax
add cl, 0xf4
mov dword [esp + 0x38], ebp
mov byte [0x42b9e2], cl
movzx ecx, cl
imul eax, ecx, 0x6a24e2c
mov dword [0x42b9d0], eax
test ebp, ebp
je 0x416ddc
and eax, 0x9d2f6168
xor ecx, ecx
or eax, 0xc2d4048
mov edx, 0x54e1cc7b
add eax, 0x2b6967a6
inc ecx
mov dword [0x42b9d0], eax
xor al, 0x21
mov byte [0x42b9e2], al
lea eax, [esp + 0x90]
push eax
push ebp
call fcn.0041568d
call eax
movzx ecx, byte [0x42b9e2]
mov ebx, eax
imul ecx, ecx, 0x5ef8fa42
mov edx, 0x17299c7b
mov dword [esp + 0x3c], ebx
and ecx, 0xf7686225
mov dword [0x42b9d0], ecx
xor ecx, ecx
inc ecx
call fcn.0041568d
mov edx, dword [0x42b9d0]
mov cl, dl
or cl, 0x74
mov dword [esp + 0x24], eax
xor cl, 0xee
cmp ebx, 0xffffffff
je 0x416dbd
add dl, 0x74
mov word [esp + 0x10], 0x2b2b
movzx ecx, dl
mov ebp, eax
and ecx, 0xbf4b7fba
xor eax, eax
mov word [esp + 0x2c], si
mov word [esp + 0x2e], ax
xor edx, edx
mov esi, 0xff
movzx eax, byte [esp + edx + 0x10]
add ax, 3
and ax, si
mov word [esp + edx*2 + 0x40], ax
inc edx
cmp edx, 2
jl 0x416b55
xor eax, eax
xor cl, 0x40
mov word [esp + 0x44], ax
movzx eax, cl
add eax, 0x5964ec91
mov byte [0x42b9e2], cl
mov dword [0x42b9d0], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x416d74
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x416d74
movzx eax, byte [0x42b9d0]
imul edx, eax, 0xbe
movzx eax, dl
imul eax, eax, 0xd9a37475
test byte [esp + 0x90], 0x10
mov byte [0x42b9e2], dl
movzx esi, dl
mov dword [0x42b9d0], eax
je 0x416d57
mov dword [esp + 0x1c], 0x2a413af3
xor ecx, ecx
mov word [esp + 0x20], 0x3af3
mov byte [esp + 0x22], 0x41
movzx eax, byte [esp + ecx + 0x1c]
add ax, 0x32
and ax, word [esp + 0x5c]
mov word [esp + ecx*2 + 0x70], ax
inc ecx
cmp ecx, 7
jl 0x416c09
xor eax, eax
and dl, 0x76
mov word [esp + 0x7e], ax
lea eax, [esi - 0x4155cfbc]
and eax, 0xf920dd37
mov byte [0x42b9e2], dl
mov dword [0x42b9d0], eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x74]
push edi
push eax
call fcn.0042318b
mov edx, dword [0x42b9d0]
mov edi, eax
xor edx, 0x27fd1476
add esp, 0xc
mov dword [0x42b9d0], edx
test edi, edi
je 0x416d53
mov dword [esp + 0x14], 0xff433cf5
xor ecx, ecx
mov word [esp + 0x18], 0x3cf5
mov esi, 0xff
mov byte [esp + 0x1a], 0x43
movzx eax, byte [esp + ecx + 0x14]
add ax, 0x30
and ax, si
mov word [esp + ecx*2 + 0x60], ax
inc ecx
cmp ecx, 7
jl 0x416c8f
xor eax, eax
mov word [esp + 0x6e], ax
mov al, dl
or al, 0x2b
mov byte [0x42b9e2], al
imul eax, edx, 0xb4e469e2
mov dword [0x42b9d0], eax
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x5c]
lea eax, [esp + 0x68]
push eax
call fcn.0042318b
mov edx, dword [0x42b9d0]
mov esi, eax
add esp, 0xc
lea ecx, [edx - 0x22]
mov byte [0x42b9e2], cl
test esi, esi
je 0x416d40
push dword [esp + 0x2ec]
or edx, 0xa8f89afc
mov ecx, edi
push dword [esp + 0x2ec]
mov dword [0x42b9d0], edx
sub dl, 0x2c
mov byte [0x42b9e2], dl
mov edx, esi
call fcn.00416540
mov eax, dword [0x42b9d0]
and eax, 0x4aa1f3a
mov dword [0x42b9d0], eax
sub al, 0x73
push esi
mov byte [0x42b9e2], al
call fcn.004056f0
mov edx, dword [0x42b9d0]
add esp, 0xc
add edx, 0x6ff0afab
push edi
mov dword [0x42b9d0], edx
call fcn.004056f0
pop ecx
mov edi, dword [esp + 0x30]
lea eax, [esp + 0x90]
push eax
push ebx
call ebp
test eax, eax
je 0x416d7d
mov ecx, dword [0x42b9d0]
push 0x2e
pop esi
jmp 0x416b42
add byte [0x42b9e2], 0x88
jmp 0x416d57
mov bl, byte [0x42b9e2]
xor ecx, ecx
push dword [esp + 0x3c]
movzx eax, bl
mov edx, 0x83fbc401
imul eax, eax, 0xe4a914c1
and bl, 0xb6
inc ecx
mov byte [0x42b9e2], bl
mov dword [0x42b9d0], eax
call fcn.0041568d
call eax
mov cl, byte [0x42b9e2]
mov edx, dword [0x42b9d0]
mov ebp, dword [esp + 0x38]
or cl, 0xb8
add edx, 0x18365d34
add cl, 0x11
mov dword [0x42b9d0], edx
push ebp
mov byte [0x42b9e2], cl
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2d4
ret