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

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
mov esi, dword [esp + 0x4c]
lea eax, [esp + 0x14]
push edi
mov edi, dword [esp + 0x4c]
lea ecx, [esp + 0x10]
push eax
xor ebx, ebx
mov bx, word [esi]
xor ebp, ebp
mov bp, word [esi + 2]
push ecx
push edi
call fcn.004447f0
lea edx, [esp + 0x24]
lea ecx, [esp + 0x5c]
lea eax, [edi + 2]
push edx
push ecx
push eax
call fcn.004447f0
mov edi, dword [esp + 0x68]
xor eax, eax
mov ax, word [esi + 2]
mov edx, ebx
xor ecx, ecx
sub edx, edi
mov cx, word [esi]
lea edi, [esi + 4]
push eax
push ecx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
push edi
push 0
push 0
push edx
push fcn.004c00b0
call fcn.00444850
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x50]
inc eax
push ecx
push edx
push eax
call fcn.004447f0
mov edx, dword [esp + 0x5c]
add esp, 0x40
test edx, edx
je 0x42d196
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
cmp ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], ebp
jge 0x42c82b
jmp 0x42c7be
mov ecx, dword [esp + 0x14]
add edx, ecx
cmp edx, eax
jg 0x42c7ea
xor eax, eax
xor edx, edx
mov ax, word [esi + 2]
mov dx, word [esi]
push eax
mov eax, dword [esp + 0x50]
push edx
push edi
push 0
inc eax
push ecx
push eax
push fcn.004c00b0
call fcn.00444850
add esp, 0x1c
jmp 0x42c815
xor edx, edx
xor eax, eax
mov dx, word [esi + 2]
mov ax, word [esi]
push edx
mov edx, dword [esp + 0x50]
push eax
push edi
push 0
push ecx
lea ecx, [esp + 0x4c]
lea eax, [edx + 1]
push ecx
push eax
push fcn.004c00b0
call fcn.00444a10
add esp, 0x20
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
add ecx, edx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jl 0x42c7ba
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 2]
mov dx, word [esi]
push ecx
push edx
push edi
push 0
push eax
mov eax, dword [esp + 0x60]
add eax, 2
push eax
push fcn.004c00b0
call fcn.00444850
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x34]
push ecx
push edx
push eax
call fcn.004447f0
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0x78]
push edx
lea eax, [ecx + 6]
lea ecx, [esp + 0x44]
push ecx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x84]
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], edx
lea ecx, [esp + 0x54]
lea edx, [esp + 0x4c]
add eax, 3
push ecx
push edx
push eax
call fcn.004447f0
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x90]
add esp, 0x40
cmp ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], eax
jge 0x42c948
mov edx, dword [esp + 0x20]
jmp 0x42c8d9
mov ecx, dword [esp + 0x14]
add edx, ecx
cmp edx, eax
jg 0x42c907
xor eax, eax
xor edx, edx
mov ax, word [esi + 2]
mov dx, word [esi]
push eax
mov eax, dword [esp + 0x50]
push edx
push edi
push ecx
add eax, 3
push 0
push eax
push fcn.004c00b0
call fcn.00444850
add esp, 0x1c
jmp 0x42c932
xor edx, edx
xor eax, eax
mov dx, word [esi + 2]
mov ax, word [esi]
push edx
mov edx, dword [esp + 0x50]
push eax
push edi
push ecx
lea ecx, [esp + 0x48]
push 0
lea eax, [edx + 3]
push ecx
push eax
push fcn.004c00b0
call fcn.00444a10
add esp, 0x20
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
add ecx, edx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jl 0x42c8d5
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 2]
mov dx, word [esi]
push ecx
push edx
push edi
push eax
mov eax, dword [esp + 0x5c]
push 0
add eax, 6
push eax
push fcn.004c00b0
call fcn.00444850
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x34]
push ecx
add eax, 2
push edx
push eax
call fcn.004447f0
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0x78]
push edx
lea eax, [ecx + 8]
lea ecx, [esp + 0x44]
push ecx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x84]
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], edx
lea ecx, [esp + 0x54]
lea edx, [esp + 0x50]
add eax, 5
push ecx
push edx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x90]
add esp, 0x40
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], ecx
jge 0x42ca7e
mov edx, dword [esp + 0x20]
jmp 0x42c9fd
mov eax, dword [esp + 0x14]
add edx, eax
cmp edx, ecx
jg 0x42ca32
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 2]
mov dx, word [esi]
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x24]
push edi
push eax
mov eax, ebx
sub eax, edx
push eax
lea eax, [ecx + 5]
push eax
push fcn.004c00b0
call fcn.00444850
add esp, 0x1c
jmp 0x42ca64
xor edx, edx
xor ecx, ecx
mov dx, word [esi + 2]
mov cx, word [esi]
push edx
push ecx
mov ecx, dword [esp + 0x24]
mov edx, ebx
push edi
push eax
sub edx, ecx
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x48]
push edx
push eax
lea eax, [ecx + 5]
push eax
push fcn.004c00b0
call fcn.00444a10
add esp, 0x20
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x42c9f9
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x18]
lea eax, [esp + 0x1c]
push edx
push eax
lea eax, [ecx + 8]
push eax
call fcn.004447f0
mov ecx, dword [esp + 0x5c]
xor edx, edx
mov dx, word [esi + 2]
xor eax, eax
mov ax, word [esi]
push edx
push eax
mov eax, dword [esp + 0x60]
push edi
push ecx
mov ecx, dword [esp + 0x38]
mov edx, ebx
sub edx, ecx
add eax, 8
push edx
push eax
push fcn.004c00b0
call fcn.00444850
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x38]
push ecx
add eax, 6
push edx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x84]
push ecx
add eax, 8
push edx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov ecx, ebx
add esp, 0x40
sub ecx, eax
lea eax, [edx + 7]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x20]
lea edx, [esp + 0x1c]
push ecx
push edx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5c]
add esp, 0xc
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], ebp
jge 0x42cbd9
mov edx, dword [esp + 0x1c]
jmp 0x42cb58
mov eax, dword [esp + 0x14]
add edx, eax
cmp edx, ecx
jg 0x42cb8d
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 2]
mov dx, word [esi]
push ecx
push edx
mov edx, dword [esp + 0x28]
mov ecx, ebp
sub ecx, edx
mov edx, dword [esp + 0x54]
push edi
push ecx
push eax
lea eax, [edx + 7]
push eax
push fcn.004c00b0
call fcn.00444850
add esp, 0x1c
jmp 0x42cbbf
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 2]
mov dx, word [esi]
push ecx
push edx
mov edx, dword [esp + 0x28]
mov ecx, ebp
sub ecx, edx
push edi
push ecx
push eax
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x4c]
add eax, 7
push edx
push eax
push fcn.004c00b0
call fcn.00444a10
add esp, 0x20
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x42cb54
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x18]
push ecx
inc eax
push edx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x24]
push ecx
add eax, 7
push edx
push eax
call fcn.004447f0
mov edx, dword [esp + 0x44]
mov ecx, ebp
sub ecx, edx
lea edx, [esp + 0x30]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x28]
push edx
push eax
lea eax, [ecx + 3]
push eax
call fcn.004447f0
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0x3c]
lea eax, [esp + 0x74]
push edx
push eax
lea eax, [ecx + 5]
push eax
call fcn.004447f0
mov eax, dword [esp + 0x80]
mov edx, ebx
sub edx, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x80], edx
lea ecx, [esp + 0x50]
lea edx, [esp + 0x4c]
add eax, 4
push ecx
push edx
push eax
call fcn.004447f0
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x68]
add esp, 0x3c
cmp eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], ecx
jge 0x42cd5e
mov ecx, dword [esp + 0x10]
cmp ecx, edx
mov dword [esp + 0x14], ecx
jge 0x42cd4c
mov ecx, dword [esp + 0x1c]
jmp 0x42ccb4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
add edx, ecx
mov ecx, dword [esp + 0x50]
cmp edx, ecx
jg 0x42ccfc
mov ecx, dword [esp + 0x20]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
jge 0x42ccfc
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 2]
mov dx, word [esi]
push ecx
mov ecx, dword [esp + 0x50]
push edx
push edi
push eax
mov eax, dword [esp + 0x24]
push eax
lea eax, [ecx + 4]
push eax
push fcn.004c00b0
call fcn.00444850
add esp, 0x1c
jmp 0x42cd2a
xor edx, edx
xor ecx, ecx
mov dx, word [esi + 2]
mov cx, word [esi]
push edx
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x54]
push edi
push eax
lea eax, [esp + 0x48]
push edx
push eax
lea eax, [ecx + 4]
push eax
push fcn.004c00b0
call fcn.00444a10
add esp, 0x20
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
add eax, ecx
cmp eax, edx
mov dword [esp + 0x14], eax
jl 0x42ccb0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
jl 0x42cc9e
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x42d196
mov esi, dword [esp + 0x4c]
lea edx, [esp + 0x28]
lea ecx, [esp + 0x54]
push edx
lea eax, [esi + 0xb]
push ecx
push eax
call fcn.004447f0
lea edx, [esp + 0x30]
lea ecx, [esp + 0x20]
lea eax, [esi + 0xc]
push edx
push ecx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x6c]
add esp, 0x18
test eax, eax
je 0x42ce6c
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x42ce6c
lea edx, [ecx + eax + 0x50]
cmp ebx, edx
jle 0x42ce6c
mov ecx, ebx
sub ecx, eax
sub ecx, 0x14
push ecx
call fcn.0047f470
mov ecx, dword [esp + 0x18]
mov edx, ebx
sub edx, ecx
add eax, 0xa
sub edx, 0x14
mov dword [esp + 0x14], eax
push edx
call fcn.0047f470
mov esi, dword [esp + 0x18]
mov ecx, eax
add ecx, 0xa
mov eax, esi
sub eax, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x5c]
add esp, 8
cdq
xor eax, edx
add ecx, 0xa
sub eax, edx
cmp eax, ecx
jge 0x42ce39
mov ecx, dword [esp + 0x14]
mov edx, ebx
sub edx, ecx
sub edx, 0x14
push edx
call fcn.0047f470
mov esi, dword [esp + 0x14]
mov ecx, eax
add ecx, 0xa
mov eax, esi
sub eax, ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x58]
add esp, 4
cdq
xor eax, edx
add ecx, 0xa
sub eax, edx
cmp eax, ecx
jl 0x42ce04
push ebp
push ebx
push edi
push 0
push esi
mov esi, dword [esp + 0x60]
lea eax, [esi + 0xb]
push eax
push fcn.004bfae0
call fcn.00444850
mov edx, dword [esp + 0x6c]
push ebp
push ebx
push edi
push 0
lea eax, [esi + 0xc]
push edx
push eax
push fcn.004bfae0
call fcn.00444850
add esp, 0x38
lea ecx, [esp + 0x28]
lea edx, [esp + 0x54]
lea eax, [esi + 0x11]
push ecx
push edx
push eax
call fcn.004447f0
lea ecx, [esp + 0x30]
lea edx, [esp + 0x20]
lea eax, [esi + 0x12]
push ecx
push edx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x6c]
add esp, 0x18
test eax, eax
je 0x42cf78
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x42cf78
lea ecx, [ecx + eax + 0x50]
cmp ebx, ecx
jle 0x42cf78
mov edx, ebx
sub edx, eax
sub edx, 0x14
push edx
call fcn.0047f470
mov ecx, dword [esp + 0x18]
add eax, 0xa
mov dword [esp + 0x14], eax
mov eax, ebx
sub eax, ecx
sub eax, 0x14
push eax
call fcn.0047f470
mov esi, dword [esp + 0x18]
mov ecx, eax
add ecx, 0xa
mov eax, esi
sub eax, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x5c]
add esp, 8
cdq
xor eax, edx
add ecx, 0xa
sub eax, edx
cmp eax, ecx
jge 0x42cf37
mov ecx, dword [esp + 0x14]
mov edx, ebx
sub edx, ecx
sub edx, 0x14
push edx
call fcn.0047f470
mov esi, dword [esp + 0x14]
mov ecx, eax
add ecx, 0xa
mov eax, esi
sub eax, ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x58]
add esp, 4
cdq
xor eax, edx
add ecx, 0xa
sub eax, edx
cmp eax, ecx
jl 0x42cf02
mov eax, dword [esp + 0x28]
mov edx, ebp
push ebp
push ebx
sub edx, eax
push edi
push edx
push esi
mov esi, dword [esp + 0x60]
lea eax, [esi + 0x11]
push eax
push fcn.004bfae0
call fcn.00444850
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov eax, ebp
push ebp
push ebx
sub eax, edx
push edi
push eax
lea eax, [esi + 0x12]
push ecx
push eax
push fcn.004bfae0
call fcn.00444850
add esp, 0x38
lea edx, [esp + 0x28]
lea ecx, [esp + 0x54]
lea eax, [esi + 0xd]
push edx
push ecx
push eax
call fcn.004447f0
lea edx, [esp + 0x30]
lea ecx, [esp + 0x20]
lea eax, [esi + 0xe]
push edx
push ecx
push eax
call fcn.004447f0
mov eax, dword [esp + 0x6c]
add esp, 0x18
test eax, eax
je 0x42d07e
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42d07e
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
lea ecx, [edx + eax + 0x50]
cmp ebp, ecx
jle 0x42d07e
mov edx, ebp
sub edx, eax
sub edx, 0x14
push edx
call fcn.0047f470
mov ecx, dword [esp + 0x28]
add eax, 0xa
mov dword [esp + 0x14], eax
mov eax, ebp
sub eax, ecx
sub eax, 0x14
push eax
call fcn.0047f470
mov esi, dword [esp + 0x18]
mov ecx, eax
add ecx, 0xa
mov eax, esi
sub eax, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x30]
add esp, 8
cdq
xor eax, edx
add ecx, 0xa
sub eax, edx
cmp eax, ecx
jge 0x42d04b
mov ecx, dword [esp + 0x24]
mov edx, ebp
sub edx, ecx
sub edx, 0x14
push edx
call fcn.0047f470
mov esi, dword [esp + 0x14]
mov ecx, eax
add ecx, 0xa
mov eax, esi
sub eax, ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x2c]
add esp, 4
cdq
xor eax, edx
add ecx, 0xa
sub eax, edx
cmp eax, ecx
jl 0x42d016
push ebp
push ebx
push edi
push esi
mov esi, dword [esp + 0x5c]
push 0
lea eax, [esi + 0xd]
push eax
push fcn.004bfae0
call fcn.00444850
mov edx, dword [esp + 0x6c]
push ebp
push ebx
push edi
push edx
lea eax, [esi + 0xe]
push 0
push eax
push fcn.004bfae0
call fcn.00444850
add esp, 0x38
lea ecx, [esp + 0x28]
lea edx, [esp + 0x54]
lea eax, [esi + 0xf]
push ecx
push edx
push eax
mov dword [esp + 0x58], eax
call fcn.004447f0
lea eax, [esp + 0x30]
lea ecx, [esp + 0x20]
add esi, 0x10
push eax
push ecx
push esi
mov dword [esp + 0x4c], esi
call fcn.004447f0
mov eax, dword [esp + 0x6c]
add esp, 0x18
test eax, eax
je 0x42d196
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42d196
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
lea ecx, [edx + eax + 0x50]
cmp ebp, ecx
jle 0x42d196
mov edx, ebp
sub edx, eax
sub edx, 0x14
push edx
call fcn.0047f470
mov ecx, dword [esp + 0x28]
add eax, 0xa
mov dword [esp + 0x14], eax
mov eax, ebp
sub eax, ecx
sub eax, 0x14
push eax
call fcn.0047f470
mov esi, dword [esp + 0x18]
mov ecx, eax
add ecx, 0xa
mov eax, esi
sub eax, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x30]
add esp, 8
cdq
xor eax, edx
add ecx, 0xa
sub eax, edx
cmp eax, ecx
jge 0x42d159
mov ecx, dword [esp + 0x24]
mov edx, ebp
sub edx, ecx
sub edx, 0x14
push edx
call fcn.0047f470
mov esi, dword [esp + 0x14]
mov ecx, eax
add ecx, 0xa
mov eax, esi
sub eax, ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x2c]
add esp, 4
cdq
xor eax, edx
add ecx, 0xa
sub eax, edx
cmp eax, ecx
jl 0x42d124
mov eax, dword [esp + 0x54]
push ebp
mov edx, ebx
push ebx
push edi
sub edx, eax
mov eax, dword [esp + 0x58]
push esi
push edx
push eax
push fcn.004bfae0
call fcn.00444850
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
push ebp
mov ebp, dword [esp + 0x34]
push ebx
push edi
sub ebx, ebp
push ecx
push ebx
push edx
push fcn.004bfae0
call fcn.00444850
add esp, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret