Function at 0x416175
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2d4
mov al, byte [0x42c970]
push ebx
push ebp
or al, 0x9a
mov dword [esp + 0x50], edx
push esi
mov byte [0x42c99a], al
push edi
push dword [esp + 0x2e8]
movzx eax, al
mov edi, ecx
or eax, 0x98064512
mov dword [esp + 0x30], edi
mov dword [0x42c980], eax
call fcn.0040702c
mov edx, dword [0x42c988]
mov ebp, eax
pop ecx
movzx ecx, word [0x42c970]
mov ebx, edx
add ecx, 0x15b6109e
mov dword [esp + 0x14], ebp
and ecx, 0xcb895fe9
and ebx, 0xf9bd
mov dword [0x42c9a8], ecx
test ebp, ebp
je 0x416777
mov ecx, dword [0x42c980]
xor bl, 0x58
push 0x2c
pop eax
mov word [esp + 0x34], ax
xor eax, eax
mov word [esp + 0x36], ax
mov al, cl
and dword [esp + 0x30], 0
or al, 0xd8
mov byte [0x42c96e], al
add ecx, 0x17db3866
mov eax, ecx
mov dword [0x42c9a8], ecx
or eax, 0x190e94be
mov byte [0x42c986], bl
mov dword [0x42c980], eax
or ecx, 0x841d
movzx eax, cx
xor eax, 0xe7eef05d
mov word [0x42c970], cx
mov dword [0x42c968], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
push ebp
call fcn.004057dc
mov edx, dword [0x42c988]
mov edi, eax
mov esi, dword [0x42c968]
or edx, 0xca57
mov ecx, esi
mov word [0x42c970], dx
and ecx, 0x3a481863
add esp, 0xc
mov dword [0x42c988], ecx
test edi, edi
je 0x416752
mov dword [esp + 0x48], 0xdff6efa8
mov word [esp + 0x4c], 0xefa8
mov byte [esp + 0x4e], 0xf6
xor ecx, ecx
mov edx, 0xff
movzx eax, byte [esp + ecx + 0x48]
add ax, 0x7d
and ax, dx
mov word [esp + ecx*2 + 0x80], ax
inc ecx
cmp ecx, 7
jl 0x4162a1
xor eax, eax
mov word [esp + 0x8e], ax
lea eax, [esi + 0x7ff2]
mov word [0x42c970], ax
mov al, byte [0x42c9a8]
add al, 0x7b
mov byte [0x42c986], al
xor al, 0xbc
push edi
mov edi, dword [esp + 0x30]
mov byte [0x42c96e], al
lea eax, [esp + 0x84]
push edi
push eax
call fcn.004233ac
imul ecx, dword [0x42c968], 0xb00cb50c
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x3c], ebp
mov dword [0x42c968], ecx
test ebp, ebp
je 0x4166fd
mov al, byte [0x42c99a]
mov edx, 0x54e1cc7b
movzx ecx, byte [0x42c96e]
add al, 0x6a
mov byte [0x42c986], al
xor ecx, 0xf7db7fd1
mov al, byte [0x42c980]
mov dword [0x42c9a8], ecx
shl al, 3
shl cl, 4
mov byte [0x42c99a], al
lea eax, [esp + 0x90]
mov byte [0x42c96e], cl
xor ecx, ecx
push eax
push ebp
inc ecx
call fcn.00415333
call eax
movzx ecx, byte [0x42c970]
mov esi, eax
imul ecx, ecx, 0xef
mov edx, 0x17299c7b
mov dword [esp + 0x38], esi
mov byte [0x42c99a], cl
mov ecx, dword [0x42c968]
and ecx, 0x43b05ea0
mov dword [0x42c980], ecx
xor ecx, ecx
inc ecx
call fcn.00415333
mov ebx, dword [0x42c988]
mov ecx, ebx
or ecx, 0x7bc3
mov dword [esp + 0x5c], eax
mov word [0x42c970], cx
cmp esi, 0xffffffff
je 0x4166e8
mov al, byte [0x42c99a]
mov cl, byte [0x42c96e]
or al, 0x88
mov ebp, dword [esp + 0x5c]
movzx eax, al
imul eax, eax, 0x54
lea edx, [ecx + 0x14]
mov word [esp + 0x10], 0x6c6c
movzx ecx, cl
mov byte [0x42c986], dl
mov byte [0x42c99a], al
mov eax, 0xd2cb
imul ecx, eax
and ebx, 0xcc04478e
mov dword [0x42c9a8], ebx
mov word [0x42c970], cx
push 0x2e
pop eax
mov word [esp + 0x54], ax
mov ebx, 0xff
xor eax, eax
xor ecx, ecx
mov word [esp + 0x56], ax
movzx eax, byte [esp + ecx + 0x10]
sub ax, 0x3e
and ax, bx
mov word [esp + ecx*2 + 0x40], ax
inc ecx
cmp ecx, 2
jl 0x41641f
xor eax, eax
sub dl, 0x5b
mov word [esp + 0x44], ax
imul eax, dword [0x42c968], 0xc9577cd1
mov byte [0x42c96e], dl
mov dword [0x42c980], eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x4166ad
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x4166ad
movzx eax, word [0x42c970]
sub dword [0x42c980], 0x7102d454
add eax, 0x2f856ade
test byte [esp + 0x90], 0xa7
mov dword [0x42c9a8], eax
je 0x416693
mov bl, byte [0x42c99a]
movzx edx, bl
and edx, 0xeb333485
cmp dword [esp + 0xac], 0
mov dword [0x42c980], edx
jne 0x416693
cmp dword [esp + 0xb0], 0xa00000
jae 0x416693
mov dword [esp + 0x1c], 0x210e1158
xor ecx, ecx
mov word [esp + 0x20], 0x1158
mov byte [esp + 0x22], 0xe
mov al, byte [esp + ecx + 0x1c]
xor al, 0x7d
movzx eax, al
mov word [esp + ecx*2 + 0x60], ax
inc ecx
cmp ecx, 7
jl 0x416500
xor eax, eax
sub edx, 0x70ccd2bd
mov word [esp + 0x6e], ax
mov al, byte [0x42c986]
or al, 0x19
mov dword [0x42c980], edx
mov byte [0x42c986], al
movzx eax, al
imul eax, eax, 0x703997d1
mov dword [0x42c968], eax
movzx eax, bl
imul eax, eax, 0x26
mov byte [0x42c99a], al
movzx eax, al
imul eax, eax, 0x90
mov byte [0x42c96e], al
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x64]
push edi
push eax
call fcn.004233ac
mov edx, dword [0x42c968]
mov edi, eax
add esp, 0xc
lea ecx, [edx + 0x13eeb056]
mov dword [0x42c988], ecx
test edi, edi
je 0x41668f
mov dword [esp + 0x24], 0x3569763f
xor ecx, ecx
mov word [esp + 0x28], 0x763f
mov byte [esp + 0x2a], 0x69
mov al, byte [esp + ecx + 0x24]
xor al, 0x1a
movzx eax, al
mov word [esp + ecx*2 + 0x70], ax
inc ecx
cmp ecx, 7
jl 0x4165a2
xor eax, eax
mov ecx, 0x6711
mov word [esp + 0x7e], ax
xor edx, 0xfe85614e
movzx eax, byte [0x42c96e]
add eax, 0x7c098b19
mov dword [0x42c968], edx
mov dword [0x42c9a8], eax
xor al, 0x7f
mov byte [0x42c986], al
movzx eax, al
sub ax, cx
mov word [0x42c970], ax
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x5c]
lea eax, [esp + 0x78]
push eax
call fcn.004233ac
mov edx, dword [0x42c980]
mov esi, eax
add esp, 0xc
lea ecx, [edx - 0x76d22a82]
mov dword [0x42c988], ecx
test esi, esi
je 0x41666a
movzx ecx, byte [0x42c99a]
mov edx, esi
mov eax, dword [0x42c9a8]
imul ecx, ecx, 0x14
add eax, 0xbfb7dbc6
mov dword [0x42c980], eax
mov byte [0x42c96e], cl
mov ecx, edi
call fcn.0041e43a
movzx eax, word [0x42c970]
imul eax, eax, 0xbc8517a0
push esi
mov dword [0x42c980], eax
call fcn.004056f0
mov edx, dword [0x42c980]
pop ecx
movzx eax, byte [0x42c99a]
add dl, 0x27
add eax, 0x301e9bc9
mov byte [0x42c986], dl
push edi
mov dword [0x42c9a8], eax
call fcn.004056f0
mov esi, dword [esp + 0x3c]
pop ecx
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0x90]
push eax
push esi
call ebp
test eax, eax
je 0x4166be
mov dl, byte [0x42c986]
jmp 0x416409
mov eax, dword [0x42c9a8]
add eax, 0x6d755261
mov dword [0x42c988], eax
jmp 0x416693
mov eax, dword [0x42c980]
xor ecx, ecx
add eax, 0xffff86b5
mov edx, 0x83fbc401
push esi
inc ecx
mov word [0x42c970], ax
call fcn.00415333
call eax
mov ebx, dword [0x42c988]
mov ebp, dword [esp + 0x3c]
movzx eax, bl
imul eax, eax, 0xf7
push ebp
mov byte [0x42c96e], al
call fcn.004056f0
pop ecx
imul eax, dword [0x42c980], 0xe600d806
mov dword [0x42c988], eax
movzx eax, word [0x42c970]
imul eax, eax, 0xd30b7ca0
and eax, 0x50814a93
mov dword [0x42c968], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
push 0
call fcn.004057dc
mov esi, dword [0x42c968]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x41629a
mov dx, word [0x42c970]
mov ebp, dword [esp + 0x14]
lea eax, [esi - 0x6d8dfbb]
xor dl, 0xc3
push ebp
mov dword [0x42c9a8], eax
mov byte [0x42c99a], dl
call fcn.004056f0
mov edx, dword [0x42c988]
mov edi, dword [esp + 0x30]
pop ecx
movzx esi, byte [0x42c99a]
mov ebx, 0x49ba
mov eax, esi
or eax, 0xed28d709
mov dword [0x42c980], eax
movzx eax, byte [0x42c96e]
add ax, bx
mov word [0x42c970], ax
movzx eax, byte [0x42c96e]
sub eax, 0x6b971063
cmp byte [esp + 0x2ec], 0
mov dword [0x42c968], eax
je 0x416c6d
mov dword [esp + 0x14], 0x6279722b
xor ecx, ecx
mov byte [esp + 0x18], 0x30
mov ebx, 0xff
movzx eax, byte [esp + ecx + 0x14]
sub ax, 6
and ax, bx
mov word [esp + ecx*2 + 0x48], ax
inc ecx
cmp ecx, 5
jl 0x4167d2
movzx ecx, byte [0x42c986]
xor eax, eax
mov word [esp + 0x52], ax
xor dl, 0x16
mov eax, 0x19d2
mov byte [0x42c986], dl
sub cx, ax
lea eax, [esi + 0x21614c54]
mov dword [0x42c9a8], eax
lea eax, [esp + 0x48]
push edi
push eax
mov word [0x42c970], cx
mov byte [0x42c99a], cl
call fcn.004233ac
pop ecx
pop ecx
mov ecx, dword [0x42c980]
mov ebp, eax
or ecx, 0x7450ffa9
mov dword [esp + 0x38], ebp
mov dword [0x42c9a8], ecx
mov cl, byte [0x42c96e]
or cl, 0xf2
mov byte [0x42c99a], cl
test ebp, ebp
je 0x416c6d
mov eax, dword [0x42c968]
mov edx, 0x54e1cc7b
add byte [0x42c986], 0xca
xor eax, 0x57e63b31
mov dword [0x42c980], eax
and eax, 0xa03c
mov word [0x42c970], ax
movzx eax, cl
xor ecx, ecx
or eax, 0xbb3ffb4a
inc ecx
mov dword [0x42c968], eax
lea eax, [esp + 0x90]
push eax
push ebp
call fcn.00415333
call eax
imul ecx, dword [0x42c968], 0xeee98ebe
mov edi, eax
mov edx, 0x17299c7b
mov dword [esp + 0x3c], edi
mov dword [0x42c980], ecx
mov ecx, dword [0x42c988]
and ecx, 0xda18
mov word [0x42c970], cx
xor ecx, ecx
inc ecx
call fcn.00415333
mov cl, byte [0x42c9a8]
mov dl, byte [0x42c96e]
and cl, 0xa0
mov byte [0x42c986], cl
mov ecx, dword [0x42c988]
add ecx, 0x8677424f
mov dword [esp + 0x14], eax
mov dword [0x42c980], ecx
lea ebx, [edx - 0x15]
cmp edi, 0xffffffff
je 0x416c43
mov ebp, dword [esp + 0x14]
add dl, 0x13
movzx eax, dl
or eax, 0xd10e51b2
mov word [esp + 0x10], 0x1616
mov dword [0x42c968], eax
mov ebx, dword [0x42c988]
push 0x2e
pop eax
mov word [esp + 0x30], ax
xor eax, eax
mov word [esp + 0x32], ax
xor ecx, ecx
mov al, byte [esp + ecx + 0x10]
xor al, 0x38
movzx eax, al
mov word [esp + ecx*2 + 0x40], ax
inc ecx
cmp ecx, 2
jl 0x416941
xor eax, eax
add bl, 0x27
mov word [esp + 0x44], ax
movzx eax, dl
and eax, 0x48c8560c
mov byte [0x42c99a], bl
mov dword [0x42c9a8], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x416bbc
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x416bbc
movzx edx, byte [0x42c96e]
movzx esi, word [0x42c970]
lea eax, [edx - 0x3d5d15a0]
mov dword [0x42c9a8], eax
imul eax, dword [0x42c980], 0x7d49e87a
mov dword [0x42c968], eax
mov eax, esi
xor eax, 0x1f8f29fe
test byte [esp + 0x90], 0x10
mov dword [0x42c988], eax
je 0x416be7
mov dword [esp + 0x24], 0x384f4801
xor ecx, ecx
mov word [esp + 0x28], 0x4801
mov ebx, 0xff
mov byte [esp + 0x2a], 0x4f
movzx eax, byte [esp + ecx + 0x24]
add ax, 0x24
and ax, bx
mov word [esp + ecx*2 + 0x70], ax
inc ecx
cmp ecx, 7
jl 0x416a07
xor eax, eax
mov word [esp + 0x7e], ax
lea eax, [esi - 0x66213a9a]
xor eax, 0xa47dfd45
mov dword [0x42c988], eax
imul eax, edx, 0xa52caaf3
mov dword [0x42c9a8], eax
movzx eax, byte [0x42c99a]
or eax, 0xf11de10b
mov dword [0x42c980], eax
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x78]
push eax
call fcn.004233ac
mov ecx, dword [0x42c9a8]
mov esi, eax
add ecx, 0xffffb520
add esp, 0xc
mov word [0x42c970], cx
test esi, esi
je 0x416be7
mov dword [esp + 0x1c], 0x376b743d
xor ecx, ecx
mov word [esp + 0x20], 0x743d
mov byte [esp + 0x22], 0x6b
mov al, byte [esp + ecx + 0x1c]
xor al, 0x18
movzx eax, al
mov word [esp + ecx*2 + 0x60], ax
inc ecx
cmp ecx, 7
jl 0x416a9d
xor eax, eax
mov word [esp + 0x6e], ax
mov eax, dword [0x42c988]
mov ecx, eax
and al, 0x52
xor ecx, 0x1f01f71e
mov byte [0x42c99a], al
imul eax, ecx, 0xeb56
mov dword [0x42c980], ecx
mov word [0x42c970], ax
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x5c]
lea eax, [esp + 0x68]
push eax
call fcn.004233ac
mov bl, byte [0x42c986]
mov edi, eax
movzx ecx, word [0x42c970]
add esp, 0xc
mov dl, byte [0x42c96e]
and ecx, 0xbe69ec0b
movzx eax, bl
and dl, 0xfc
mov dword [esp + 0x14], 0x26b8
or ax, word [esp + 0x14]
mov dword [0x42c988], ecx
mov byte [0x42c99a], dl
mov word [0x42c970], ax
test edi, edi
je 0x416ba1
push dword [esp + 0x2ec]
movzx eax, bl
add cl, 0x49
push dword [esp + 0x2ec]
xor eax, 0xe58fce22
mov byte [0x42c986], cl
mov dword [0x42c980], eax
mov edx, edi
movzx eax, cl
mov ecx, esi
add eax, 0x6e8f8c4f
mov dword [0x42c9a8], eax
call fcn.00416175
mov al, byte [0x42c9a8]
or al, 8
mov byte [0x42c96e], al
movzx eax, word [0x42c970]
sub eax, 0x2bd82393
push edi
mov dword [0x42c980], eax
call fcn.004056f0
mov dl, byte [0x42c99a]
add esp, 0xc
movzx eax, dl
imul eax, eax, 0x4ba28222
push esi
mov dword [0x42c980], eax
call fcn.004056f0
mov edi, dword [esp + 0x40]
pop ecx
jmp 0x416be7
mov ecx, dword [0x42c968]
lea eax, [ecx + 0x38]
mov byte [0x42c96e], al
lea eax, [ecx - 0x55eb0890]
mov dword [0x42c980], eax
movzx eax, byte [0x42c99a]
imul eax, eax, 0xb881caa4
mov dword [0x42c9a8], eax
lea eax, [esp + 0x90]
push eax
push edi
call ebp
test eax, eax
je 0x416c01
mov dl, byte [0x42c99a]
jmp 0x41692a
movzx eax, byte [0x42c99a]
mov esi, 0x5c13
xor ax, si
xor ecx, ecx
mov word [0x42c970], ax
mov edx, 0x83fbc401
movzx eax, ax
inc ecx
xor eax, 0x77d84bb5
push edi
mov dword [0x42c988], eax
call fcn.00415333
call eax
mov bl, byte [0x42c99a]
mov ecx, dword [0x42c980]
mov ebp, dword [esp + 0x38]
movzx eax, bl
or cl, 0xc2
imul eax, eax, 0x8125edb9
push ebp
mov byte [0x42c986], cl
mov dword [0x42c9a8], eax
mov al, byte [0x42c970]
xor al, 0x16
mov byte [0x42c99a], al
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2d4
ret