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

Disassembly:
push 0xffffffffffffffff
push 0x5cd8a8
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x680f10]
xor eax, esp
mov dword [esp + 0x144], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x680f10]
xor eax, esp
push eax
lea eax, [esp + 0x15c]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x14], 0
cmp word [ebp + 0xc4], 5
mov dword [esp + 0x18], ebp
mov ebx, 1
ja 0x475975
cmp word [ebp + 0xc6], bx
ja 0x475975
xor al, al
jmp 0x475977
mov al, bl
cmp dword [ebp + 0x174], 2
mov edi, 3
lea ecx, [edi + 1]
jne 0x4759a6
cmp dword [ebp + 0x180], 0x80
jne 0x4759a6
test al, al
je 0x4759a6
mov dword [ebp + 0x1cc], ecx
mov dword [ebp + 0x1c8], ecx
jmp 0x4759db
mov eax, 0x28
cmp eax, dword [ebp + 0x180]
sbb eax, eax
neg eax
add eax, ebx
cmp eax, 2
mov dword [ebp + 0x1cc], eax
jae 0x4759d3
test dword [ebp + 0x184], 0xf00
mov eax, 2
jne 0x4759d5
mov eax, edi
mov dword [ebp + 0x1c8], eax
mov eax, dword [ebp + 0x184]
mov ecx, dword [ebp + 0x1c8]
and eax, 0xfffffffc
or eax, 0xc0
cmp ecx, edi
mov dword [esp + 0x1c], eax
jb 0x475a00
or eax, 0xfffff000
mov dword [esp + 0x1c], eax
cmp ecx, 2
jne 0x475a0e
or eax, 0xffffff00
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [ebp + 0x188], eax
mov dword [ebp + 0x18c], eax
mov dword [ebp + 0x190], eax
mov dword [ebp + 0x194], eax
mov dword [ebp + 0x198], eax
mov dword [ebp + 0x19c], eax
mov dword [ebp + 0x1a0], eax
mov dword [ebp + 0x1a4], eax
mov dword [ebp + 0x1a8], eax
mov dword [ebp + 0x1ac], eax
mov dword [ebp + 0x1b0], eax
mov dword [ebp + 0x1b4], eax
mov dword [ebp + 0x1b8], eax
mov dword [ebp + 0x1bc], eax
mov dword [ebp + 0x1c0], eax
mov dword [ebp + 0x1c4], eax
mov esi, dword [ebp + 0x178]
test esi, esi
je 0x475a8f
cmp dword [esi + 4], eax
jne 0x475a8a
mov ecx, dword [esi]
push ecx
call fcn.00464000
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x475a91
xor esi, esi
mov ecx, esi
test ecx, ecx
je 0x475aad
mov eax, ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x475aa0
sub eax, esi
jne 0x475acf
mov esi, dword [ebp + 0x17c]
test esi, esi
je 0x475acd
cmp dword [esi + 4], 0
jne 0x475ac8
mov edx, dword [esi]
push edx
call fcn.00464000
mov dword [esi + 4], eax
mov ecx, dword [esi + 4]
jmp 0x475acf
xor ecx, ecx
xor eax, eax
xor esi, esi
test ecx, ecx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
je 0x475b2b
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x475b14
sub eax, esi
mov esi, eax
cmp esi, 0x20
jbe 0x475b2b
mov esi, 0x20
push esi
push ecx
lea eax, [esp + 0x114]
push eax
call fcn.00450150
add esp, 0xc
cmp esi, 0x20
jae 0x475b5f
mov ecx, 0x20
sub ecx, esi
push ecx
lea edx, [esp + esi + 0x110]
push 0x5efcc4
push edx
call fcn.00450150
add esp, 0xc
push 0x5c
lea eax, [esp + 0xa4]
push 0
push eax
call fcn.0044dac0
lea ecx, [esp + 0xac]
push ecx
call fcn.00562400
push 0x20
lea edx, [esp + 0x120]
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.00562aa0
lea ecx, [esp + 0xbc]
push ecx
lea edx, [esp + 0x14c]
push edx
call fcn.00562d70
add esp, 0x24
cmp dword [ebp + 0x1c8], edi
jb 0x475c00
mov esi, 0x32
lea esp, [esp]
lea eax, [esp + 0xa0]
push eax
call fcn.00562400
push 0x10
lea ecx, [esp + 0x134]
push ecx
lea edx, [esp + 0xac]
push edx
call fcn.00562aa0
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x140]
push ecx
call fcn.00562d70
add esp, 0x18
sub esi, ebx
jne 0x475bc0
mov esi, dword [ebp + 0x17c]
test esi, esi
je 0x475c20
cmp dword [esi + 4], 0
jne 0x475c1b
mov edx, dword [esi]
push edx
call fcn.00464000
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x475c22
xor edx, edx
xor eax, eax
xor esi, esi
test edx, edx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
je 0x475c7e
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x475c67
sub eax, esi
mov esi, eax
cmp esi, 0x20
jbe 0x475c7e
mov esi, 0x20
push esi
push edx
lea eax, [esp + 0x114]
push eax
call fcn.00450150
add esp, 0xc
cmp esi, 0x20
jae 0x475cb2
mov ecx, 0x20
sub ecx, esi
push ecx
lea edx, [esp + esi + 0x110]
push 0x5efcc4
push edx
call fcn.00450150
add esp, 0xc
mov ecx, dword [ebp + 0x180]
push 0x20
lea eax, [esp + 0x110]
push eax
shr ecx, 3
push ecx
lea edx, [esp + 0x138]
push edx
call fcn.004a0310
add esp, 0x10
cmp dword [ebp + 0x1c8], edi
jb 0x475d3a
mov edi, edi
mov edi, dword [ebp + 0x180]
xor eax, eax
shr edi, 3
je 0x475d17
mov esi, dword [ebp + 0x180]
shr esi, 3
jmp 0x475d00
mov cl, byte [esp + eax + 0x12c]
xor cl, bl
mov byte [esp + eax + 0x13c], cl
add eax, 1
cmp eax, esi
jb 0x475d00
push 0x20
lea edx, [esp + 0x110]
push edx
lea eax, [esp + 0x144]
push edi
push eax
call fcn.004a0310
add ebx, 1
add esp, 0x10
cmp ebx, 0x13
jbe 0x475ce0
mov ecx, 8
lea esi, [esp + 0x10c]
lea edi, [ebp + 0x188]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xfc]
push ecx
call fcn.00464960
mov esi, dword [ebp + 0x17c]
test esi, esi
je 0x475d7b
cmp dword [esi + 4], 0
jne 0x475d76
mov edx, dword [esi]
push edx
call fcn.00464000
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x475d7d
xor edx, edx
xor eax, eax
xor esi, esi
test edx, edx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
je 0x475dd9
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x475dc2
sub eax, esi
mov esi, eax
cmp esi, 0x20
jbe 0x475dd9
mov esi, 0x20
push esi
push edx
lea eax, [esp + 0x114]
push eax
call fcn.00450150
add esp, 0xc
cmp esi, 0x20
jae 0x475e0d
mov ecx, 0x20
sub ecx, esi
push ecx
lea edx, [esp + esi + 0x110]
push 0x5efcc4
push edx
call fcn.00450150
add esp, 0xc
lea eax, [esp + 0xa0]
push eax
call fcn.00562400
push 0x20
lea ecx, [esp + 0x114]
push ecx
lea edx, [esp + 0xac]
push edx
call fcn.00562aa0
push 0x20
lea eax, [ebp + 0x188]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.00562aa0
push 4
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0xc4]
push edx
call fcn.00562aa0
push 0x10
lea eax, [esp + 0x128]
push eax
lea ecx, [esp + 0xd0]
push ecx
call fcn.00562aa0
lea edx, [esp + 0xd4]
push edx
lea eax, [esp + 0x164]
push eax
call fcn.00562d70
add esp, 0x3c
cmp dword [ebp + 0x1c8], 3
jb 0x475ee1
mov esi, 0x32
jmp 0x475ea0
lea ecx, [esp + 0xa0]
push ecx
call fcn.00562400
push 0x10
lea edx, [esp + 0x134]
push edx
lea eax, [esp + 0xac]
push eax
call fcn.00562aa0
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x140]
push edx
call fcn.00562d70
add esp, 0x18
sub esi, 1
jne 0x475ea0
mov ebx, ebp
mov eax, dword [ebx + 0x180]
shr eax, 3
push eax
lea ecx, [esp + 0x130]
push ecx
lea ebp, [ebx + 0x7a8]
push ebp
call fcn.00450150
add esp, 0xc
cmp dword [ebx + 0x1c8], 2
jne 0x475f51
mov eax, dword [ebx + 0x180]
push 0x20
lea edx, [esp + 0x110]
push edx
shr eax, 3
push eax
mov ecx, 8
mov esi, 0x5efcc4
lea edi, [esp + 0x118]
push ebp
rep movsd dword es:[edi], dword [esi]
call fcn.004a0310
mov ecx, 8
lea esi, [esp + 0x11c]
lea edi, [ebx + 0x1a8]
add esp, 0x10
rep movsd dword es:[edi], dword [esi]
cmp dword [ebx + 0x1c8], 3
jb 0x4760cc
mov ecx, 8
mov esi, 0x5efcc4
lea edi, [esp + 0x10c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xa0]
push ecx
call fcn.00562400
push 0x20
lea edx, [esp + 0x114]
push edx
lea eax, [esp + 0xac]
push eax
call fcn.00562aa0
push 0x10
lea ecx, [esp + 0x110]
push ecx
lea edx, [esp + 0xb8]
push edx
call fcn.00562aa0
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x14c]
push ecx
call fcn.00562d70
mov eax, ebx
mov ecx, dword [eax + 0x180]
push 0x10
lea edx, [esp + 0x154]
push edx
shr ecx, 3
push ecx
push ebp
call fcn.004a0310
add esp, 0x34
mov ebx, 1
jmp 0x475ff0
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 0x180]
xor eax, eax
shr edi, 3
je 0x476023
mov esi, dword [ecx + 0x180]
shr esi, 3
lea ebx, [ebx]
mov dl, byte [eax + ebp]
xor dl, bl
mov byte [esp + eax + 0x13c], dl
add eax, 1
cmp eax, esi
jb 0x476010
push 0x10
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0x144]
push edi
push ecx
call fcn.004a0310
add ebx, 1
add esp, 0x10
cmp ebx, 0x13
jbe 0x475ff0
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x138]
mov dword [esp + 0x110], eax
mov eax, dword [0x5efcc4]
mov dword [esp + 0x114], ecx
mov ecx, dword [0x5efcc8]
mov dword [esp + 0x118], edx
mov edx, dword [0x5efccc]
mov dword [esp + 0x11c], eax
mov eax, dword [0x5efcd0]
mov dword [esp + 0x120], ecx
mov ecx, 8
lea esi, [esp + 0x10c]
add edi, 0x1a8
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], eax
rep movsd dword es:[edi], dword [esi]
push 0
push ebx
push 0x20
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x4760e8
mov ecx, eax
call fcn.004b77c0
mov edi, eax
jmp 0x4760ea
xor edi, edi
push 0x5efd64
lea ecx, [esp + 0x24]
call fcn.0048cd50
push edi
lea ecx, [esp + 0x24]
lea esi, [ebx + 0x14]
push ecx
mov ecx, esi
mov dword [esp + 0x16c], 0
call fcn.004ba020
cmp dword [esp + 0x3c], 0x10
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x20], 0x5f1558
jb 0x47613a
mov edx, dword [esp + 0x28]
push edx
call fcn.004274fc
add esp, 4
push 0x5efd68
lea ecx, [esp + 0x64]
call fcn.0048cd50
lea eax, [esp + 0x60]
mov ebp, 1
push eax
mov ecx, esi
mov dword [esp + 0x168], ebp
call fcn.004b7ac0
cmp dword [esp + 0x7c], 0x10
mov edi, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x60], 0x5f1558
jb 0x47618d
mov ecx, dword [esp + 0x68]
push ecx
call fcn.004274fc
add esp, 4
test edi, edi
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
mov byte [esp + 0x68], 0
mov dword [esp + 0x60], 0x5f13d0
je 0x4763e1
push 0
push ebx
push 0x34
call fcn.004b5290
mov esi, eax
add esp, 0xc
test esi, esi
je 0x47623e
push 0x659dc8
lea ecx, [esp + 0x24]
call fcn.0048cd50
push 0x10
lea edx, [esp + 0x100]
push edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x16c], 2
mov dword [esp + 0x28], 0x5f1580
call fcn.004cbb10
lea eax, [esp + 0x13c]
mov edi, 3
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x168], edi
mov dword [esp + 0x18], ebp
call fcn.0048c670
lea ecx, [esp + 0x13c]
push ecx
mov ecx, esi
mov dword [esp + 0x168], 4
mov dword [esp + 0x18], edi
call fcn.004b7ba0
mov edi, dword [esp + 0x18]
jmp 0x476240
xor eax, eax
push eax
mov ecx, edi
call fcn.004b8ee0
test byte [esp + 0x14], 2
mov ebp, 0x10
je 0x476290
and dword [esp + 0x14], 0xfffffffd
cmp dword [esp + 0x154], ebp
jb 0x476272
mov edx, dword [esp + 0x140]
push edx
call fcn.004274fc
add esp, 4
mov dword [esp + 0x154], 0xf
mov dword [esp + 0x150], 0
mov byte [esp + 0x140], 0
test byte [esp + 0x14], 1
mov dword [esp + 0x164], 0xffffffff
je 0x4762c2
and dword [esp + 0x14], 0xfffffffe
cmp dword [esp + 0x3c], ebp
mov dword [esp + 0x20], 0x5f1558
jb 0x4762c2
mov eax, dword [esp + 0x28]
push eax
call fcn.004274fc
add esp, 4
push 0
push ebx
push 0x34
call fcn.004b5290
mov esi, eax
add esp, 0xc
test esi, esi
je 0x47634a
push 0x659dc8
lea ecx, [esp + 0x44]
call fcn.0048cd50
push ebp
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0x16c], 5
mov dword [esp + 0x48], 0x5f1580
call fcn.004cbb10
or dword [esp + 0x14], 4
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x44]
mov dword [esp + 0x168], 6
call fcn.0048c670
or dword [esp + 0x14], 8
lea eax, [esp + 0x84]
push eax
mov ecx, esi
mov dword [esp + 0x168], 7
call fcn.004b7ba0
jmp 0x47634c
xor eax, eax
push eax
mov ecx, edi
call fcn.004b8ee0
test byte [esp + 0x14], 8
je 0x476397
and dword [esp + 0x14], 0xfffffff7
cmp dword [esp + 0x9c], ebp
jb 0x476379
mov ecx, dword [esp + 0x88]
push ecx
call fcn.004274fc
add esp, 4
mov dword [esp + 0x9c], 0xf
mov dword [esp + 0x98], 0
mov byte [esp + 0x88], 0
test byte [esp + 0x14], 4
mov dword [esp + 0x164], 0xffffffff
je 0x4763e1
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0x40], 0x5f1558
jb 0x4763c4
mov edx, dword [esp + 0x48]
push edx
call fcn.004274fc
add esp, 4
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
mov dword [esp + 0x40], 0x5f13d0
mov ecx, ebx
call fcn.0046df40
mov ecx, dword [esp + 0x15c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.0044abb9
add esp, 0x154
ret