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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [0x4497e0]
mov dword [esp + 4], eax
mov dword [esp + 0x50], 0xfcfbfae1
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x50]
mov eax, 0x9d4c618e
sub eax, ecx
or eax, edx
mov esi, 0x8e
sub esi, ecx
and esi, edx
not eax
or eax, esi
mov edx, eax
and edx, 0x77
add edx, edx
xor eax, 0x88
sub edx, eax
mov byte [esp + ecx + 0x50], dl
add ecx, 0xb5464b3e
mov eax, ecx
and eax, 0x43
xor ecx, 0x4ab9b4c3
lea ecx, [ecx + eax*2]
cmp ecx, 4
jb 0x436f00
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x32313042
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 7
xor cl, byte [esp + eax + 8]
add cl, 0xc8
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 4
jne 0x436f60
mov eax, dword [esp + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], 0x14c01234
mov dword [esp + 0x14], 0x28e4169c
mov dword [esp + 0x18], 0x2cce2add
mov dword [esp + 0x1c], 0x20eb2ed0
mov dword [esp + 0x20], 0x24da22d3
mov dword [esp + 0x24], 0x38c226d3
mov dword [esp + 0x28], 0x3c3b3a1c
xor eax, eax
xor ebx, ebx
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx + 0x10]
mov edx, ebx
xor edx, 0x884f927
mov esi, eax
and esi, 0x30
sub esi, edx
mov edx, esi
and edx, ecx
lea edi, [esi + ecx]
not edi
lea edx, [edi + edx*2]
and edx, esi
add edx, edx
sub esi, edx
add esi, ecx
mov ecx, esi
and ecx, 0x37
xor esi, 0x37
lea ecx, [esi + ecx*2]
inc cl
mov byte [esp + ebx + 0x10], cl
inc ebx
add eax, 2
cmp ebx, 0x1c
jne 0x436fc0
lea eax, [esp + 0x6c]
lea esi, [esp + 0x7c]
lea ebx, [esp + 0x10]
push eax
push dword [esp + 0x10]
push esi
push dword [esp + 0x54]
push ebx
push 0
call dword [esp + 0x1c]
test eax, eax
jns 0x437131
mov word [esp + 0x10], 0xc381
xor ecx, ecx
mov dl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x10]
mov eax, ecx
or eax, 0xb5315152
xor eax, esi
mov esi, eax
and esi, 0x1431516d
mov edi, eax
and edi, 2
mov ebx, edi
xor ebx, 2
imul ebx, esi
or esi, 2
imul esi, edi
add esi, ebx
xor eax, 0x5675756f
mov edi, esi
and edi, eax
xor eax, esi
lea eax, [eax + edi*2]
inc al
mov byte [esp + ecx + 0x10], al
mov ecx, 1
xor eax, eax
test dl, 1
mov edx, 0
jne 0x437040
movzx ecx, word [esp + 0x10]
mov word [esp + 0x7c], cx
mov word [esp + 0x10], 0xda93
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ecx
lea edx, [eax + 0x7961ae51]
mov esi, edx
mov edi, edx
xor edi, 0xa44bfefe
or edx, 0x59200001
and edx, edi
movzx ebx, byte [esp + eax + 0x10]
and esi, 2
xor esi, 0x840a50ae
or edx, esi
mov esi, ebx
xor esi, 0xa44bfefe
mov edi, ebx
or edi, 1
and esi, edi
mov ecx, esi
xor esi, edi
not ecx
or ebx, 0x5bb40101
and ebx, ecx
or ebx, esi
not ebx
mov ecx, edx
and ecx, ebx
add ebx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x78
mov byte [esp + eax + 0x10], bl
mov eax, 1
test byte [esp + 4], 1
mov ecx, 0
jne 0x4370b0
movzx eax, word [esp + 0x10]
mov word [esp + 0x7e], ax
lea esi, [esp + 0x7c]
lea ebx, [esp + 0x10]
mov dword [esp + 0x80], 0x5c
mov dword [esp + 0x78], 0x3906ca2a
mov dword [esp + 0x74], 0x9a3f368b
mov dword [esp + 0x70], 0xb6c74d88
mov dword [esp + 0x6c], 0x90155c09
mov dword [esp + 8], 0
lea eax, [esp + 8]
push eax
push 0x44067c
push 1
push 0
push 0x44068c
call dword [0x440dbc]
test eax, eax
mov edi, dword [ebp + 8]
js 0x437548
mov dword [esp + 0x10], 0x3bf539ea
mov dword [esp + 0x14], 0x3fea3df3
mov dword [esp + 0x18], 0xc301c11c
mov dword [esp + 0x1c], 0xc70bc50d
mov dword [esp + 0x20], 0xcbf8c91e
mov word [esp + 0x24], 0xcdcc
mov eax, 0x248d25f8
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x248d25e8]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x3f
add edx, edx
xor ecx, 0xc0
sub edx, ecx
mov byte [esp + eax - 0x248d25e8], dl
inc eax
cmp eax, 0x248d260e
jne 0x4371c0
push ebx
call dword [0x440dd4]
mov esi, ebx
mov ebx, eax
mov eax, dword [esp + 8]
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esp + 0x20], ebx
push ebx
mov ebx, esi
push eax
call dword [ecx + 0xc]
test eax, eax
lea esi, [esp + 0x7c]
js 0x437534
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x68]
call dword [0x440dc8]
test eax, eax
js 0x43752a
mov dword [esp + 0x10], 0x9a289810
mov dword [esp + 0x14], 0x9e9d9c27
xor eax, eax
nop
nop
nop
nop
nop
mov edx, eax
and edx, 1
xor edx, 0xa1
mov ecx, eax
and ecx, 6
sub ecx, edx
xor cl, byte [esp + eax + 0x10]
add cl, 8
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 8
jne 0x437260
push ebx
call dword [0x440dd4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x296d2795
mov dword [esp + 0x14], 0x2d692b66
mov dword [esp + 0x18], 0x11a42f6d
mov dword [esp + 0x1c], 0x157e1372
mov dword [esp + 0x20], 0x195e1776
mov dword [esp + 0x24], 0x1d531ba8
mov dword [esp + 0x28], 0x1601f53
mov dword [esp + 0x2c], 0x5ad03b5
mov dword [esp + 0x30], 0x95b07a8
mov dword [esp + 0x34], 0xdb30b58
mov dword [esp + 0x38], 0x71390f4c
mov dword [esp + 0x3c], 0x75c7733d
mov word [esp + 0x40], 0x7776
mov eax, 0x96
mov esi, 0x69
nop
movzx edx, byte [esp + eax - 0x86]
not edx
mov ecx, esi
or ecx, edx
or edx, eax
not edx
add edx, eax
mov ebx, ecx
not ebx
or ebx, edx
add ebx, ecx
add bl, 0x51
mov byte [esp + eax - 0x86], bl
inc eax
dec esi
cmp eax, 0xc8
jne 0x437300
lea ebx, [esp + 0x10]
push ebx
call dword [0x440dd4]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esi]
lea edx, [esp + 0x68]
push edx
push 0
push 0x30
mov dword [esp + 0x54], eax
push eax
mov ebx, dword [esp + 0x1c]
push ebx
push esi
call dword [ecx + 0x50]
test eax, eax
js 0x437513
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
lea edx, [esp + 0x60]
lea esi, [esp + 0x64]
push edx
push esi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x437509
cmp eax, 1
je 0x437509
cmp dword [esp + 0x60], 0
je 0x437509
lea esi, [esp + 0x50]
push esi
call dword [0x440de0]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], 0x5afc58d4
mov dword [esp + 0x14], 0x5ec45cc9
mov dword [esp + 0x18], 0x52cd50fe
mov dword [esp + 0x1c], 0x56c054ed
mov dword [esp + 0x20], 0x4aeb48ca
mov dword [esp + 0x24], 0x4edf4cee
mov word [esp + 0x28], 0x404f
mov ecx, 0x4b524c9f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x4b524c8f]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 8
mov byte [esp + ecx - 0x4b524c8f], dl
inc ecx
cmp ecx, 0x4b524cb9
jne 0x4373f0
mov ecx, dword [eax]
push 0
push 0
push esi
push 0
lea ebx, [esp + 0x20]
push ebx
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x4374f4
cmp word [esp + 0x50], 8
jne 0x4374f4
mov eax, dword [esp + 0x58]
movzx ecx, word [eax]
test cx, cx
mov dword [esp + 0x44], eax
je 0x43748d
add eax, 2
xor ebx, ebx
jmp 0x43746c
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x43748f
cmp cx, 0x7f
jbe 0x437460
movzx edx, cx
cmp edx, 0x7ff
ja 0x437482
add ebx, 2
jmp 0x437461
cmp cx, 0xffff
je 0x437461
add ebx, 3
jmp 0x437461
xor ebx, ebx
lea esi, [ebx + 1]
push esi
call fcn.00408c90
add esp, 4
push dword [esp + 0x44]
push esi
mov dword [esp + 0x4c], eax
push eax
call fcn.00409c20
add esp, 0xc
mov eax, 3
sub eax, ebx
cmp eax, 0xfffffffd
jae 0x4374be
mov eax, 0xfffffffc
add eax, ebx
shr eax, 2
cmp eax, 3
lea esi, [esp + 0x50]
jb 0x4374d1
mov eax, 3
lea eax, [eax*4 + 4]
push eax
mov ebx, dword [esp + 0x48]
push ebx
lea eax, [esp + 0x74]
push eax
call fcn.00408cc0
add esp, 0xc
push ebx
call fcn.00408ca0
add esp, 4
push esi
call dword [0x440ddc]
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [0x440dd8]
push ebx
call esi
push dword [esp + 0x48]
call esi
lea esi, [esp + 0x7c]
lea ebx, [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [esp + 4]
call dword [0x440dd8]
mov eax, dword [esp + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xb65c016e
push dword [0x4487d8]
call fcn.0043d2a0
add esp, 8
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
push esi
call eax
test eax, eax
je 0x437577
mov eax, dword [esp + 0x10]
mov dword [esp + 0x6c], eax
xor esi, esi
jmp 0x43758d
inc esi
add edi, 8
cmp esi, 4
je 0x437697
mov dword [esp + 4], edi
mov eax, 0
test esi, esi
je 0x4375a4
cmp dword [esp + esi*4 + 0x6c], 1
mov eax, esi
sbb eax, 0
mov eax, dword [esp + eax*4 + 0x6c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], 0x89f23fc3
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x50]
mov edi, ecx
and edi, 1
xor edi, 0x2d86e1cd
mov ebx, ecx
and ebx, 2
sub ebx, edi
add ebx, 0x88dd8603
mov edi, ebx
or edi, edx
not edx
or ebx, edx
sub edx, ebx
add edx, edi
add dl, 0x50
mov byte [esp + ecx + 0x50], dl
inc ecx
cmp ecx, 4
jne 0x4375c0
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], 0x34e37b
mov dword [esp + 0x14], 0x6f6e6d6c
xor edx, edx
nop
nop
nop
nop
movzx edi, byte [esp + edx + 0x10]
mov eax, edx
or eax, 0x28
mov ebx, 0xd7
sub ebx, edx
xor ebx, eax
and ebx, edi
xor ebx, eax
add bl, 0xc0
mov byte [esp + edx + 0x10], bl
lea ebx, [edx + edx]
and ebx, 2
mov eax, ebx
and eax, edx
or ebx, edx
xor ebx, 1
add ebx, eax
mov edx, ebx
cmp ebx, 8
jb 0x437610
imul ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x10]
mov dword [esp + esi*4 + 0x6c], ecx
mov ebx, 0xfffffff7
push 0x10
push 9
mov edi, dword [esp + 0xc]
push edi
push ecx
call fcn.0041eb60
add esp, 0x10
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 9], 0
lea ebx, [ebx + 1]
jne 0x437670
test ebx, ebx
je 0x437580
add eax, ebx
neg ebx
push ebx
push 0x30
push eax
call fcn.00408da0
add esp, 0xc
jmp 0x437580
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret