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

Disassembly:
sub esp, 0x570
mov eax, dword [0x5755c4]
xor eax, esp
mov dword [esp + 0x56c], eax
push ebx
mov eax, ecx
push ebp
push esi
push edi
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 8]
mov dword [esp + 0x18], eax
cmp esi, 5
jae 0x422494
lea ecx, [ecx]
mov eax, dword [eax]
mov ecx, dword [eax + 0xa078]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x14], eax
cmp ecx, dword [ebp + 0x1030]
jae 0x42241f
mov eax, dword [ebp + 0x1028]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x102c], eax
jmp 0x422442
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x540780]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x422449
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x42247e
jmp 0x42244c
or edx, 0xffffffff
mov edi, dword [esp + 0x14]
cmp byte [edi + 0xa088], 0
jne 0x42247e
mov eax, dword [edi + 4]
add eax, 0xd552
push eax
push 0x38
call fcn.00415840
push 3
mov ecx, 0x5b77e4
call fcn.0046e7a0
xor edx, edx
mov byte [edi + 0xa088], 1
mov eax, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 5
jb 0x4223f0
mov ecx, ebx
sub esi, 5
and ecx, 0x1f
shr ebx, 5
add ecx, 0x101
mov dword [esp + 0x34], ecx
cmp esi, 5
jae 0x422556
mov eax, dword [eax]
mov ecx, dword [eax + 0xa078]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x14], eax
cmp ecx, dword [ebp + 0x1030]
jae 0x4224e1
mov eax, dword [ebp + 0x1028]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x102c], eax
jmp 0x422504
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x540780]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x42250b
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x422540
jmp 0x42250e
or edx, 0xffffffff
mov edi, dword [esp + 0x14]
cmp byte [edi + 0xa088], 0
jne 0x422540
mov eax, dword [edi + 4]
add eax, 0xd552
push eax
push 0x38
call fcn.00415840
push 3
mov ecx, 0x5b77e4
call fcn.0046e7a0
xor edx, edx
mov byte [edi + 0xa088], 1
mov eax, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 5
jb 0x4224b2
mov ecx, ebx
sub esi, 5
and ecx, 0x1f
shr ebx, 5
inc ecx
mov dword [esp + 0x20], ecx
cmp esi, 4
jae 0x422618
nop
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax + 0xa078]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x14], eax
cmp ecx, dword [ebp + 0x1030]
jae 0x4225a3
mov eax, dword [ebp + 0x1028]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x102c], eax
jmp 0x4225c6
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x540780]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x4225cd
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x422602
jmp 0x4225d0
or edx, 0xffffffff
mov edi, dword [esp + 0x14]
cmp byte [edi + 0xa088], 0
jne 0x422602
mov eax, dword [edi + 4]
add eax, 0xd552
push eax
push 0x38
call fcn.00415840
push 3
mov ecx, 0x5b77e4
call fcn.0046e7a0
xor edx, edx
mov byte [edi + 0xa088], 1
mov ecx, esi
add esi, 8
shl edx, cl
or ebx, edx
cmp esi, 4
jb 0x422570
mov ecx, dword [esp + 0x20]
mov eax, ebx
sub esi, 4
and eax, 0xf
shr ebx, 4
add eax, 4
cmp dword [esp + 0x34], 0x11e
mov dword [esp + 0x24], eax
ja 0x422d93
cmp ecx, 0x1e
ja 0x422d93
xor edx, edx
mov dword [esp + 0x14], edx
test eax, eax
je 0x422735
nop
cmp esi, 3
jae 0x422708
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax + 0xa078]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x28], eax
cmp ecx, dword [ebp + 0x1030]
jae 0x422693
mov eax, dword [ebp + 0x1028]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x102c], eax
jmp 0x4226b6
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x540780]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x4226bd
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x4226f2
jmp 0x4226c0
or edx, 0xffffffff
mov edi, dword [esp + 0x28]
cmp byte [edi + 0xa088], 0
jne 0x4226f2
mov eax, dword [edi + 4]
add eax, 0xd552
push eax
push 0x38
call fcn.00415840
push 3
mov ecx, 0x5b77e4
call fcn.0046e7a0
xor edx, edx
mov byte [edi + 0xa088], 1
mov ecx, esi
add esi, 8
shl edx, cl
or ebx, edx
cmp esi, 3
jb 0x422660
mov edx, dword [esp + 0x14]
mov eax, dword [edx*4 + 0x56d278]
mov ecx, ebx
inc edx
shr ebx, 3
and ecx, 7
mov dword [esp + 0x14], edx
sub esi, 3
mov dword [esp + eax*4 + 0x8c], ecx
cmp edx, dword [esp + 0x24]
jb 0x422650
cmp edx, 0x13
jae 0x42274d
mov eax, dword [edx*4 + 0x56d278]
inc edx
mov dword [esp + eax*4 + 0x8c], 0
cmp edx, 0x13
jb 0x422735
mov ebp, dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x34], 7
push eax
push 0
push 0
push 0x13
push 0x13
lea eax, [esp + 0xa4]
mov ecx, ebp
push eax
call fcn.00421420
mov edi, eax
test edi, edi
je 0x4227ac
cmp edi, 1
jne 0x4227a5
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4227a5
lea ecx, [ecx]
mov esi, dword [ecx - 4]
sub ecx, 8
push ecx
call fcn.00524aa2
add esp, 4
mov ecx, esi
test esi, esi
jne 0x422790
mov eax, edi
jmp 0x422d98
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
mov eax, dword [ecx*4 + 0x56d230]
mov dword [esp + 0x3c], eax
xor eax, eax
xor edx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
jmp 0x4227d0
cmp esi, ecx
jae 0x422912
jmp 0x4227e0
mov eax, dword [ebp]
mov ecx, dword [eax + 0xa078]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x14], eax
cmp ecx, dword [ebp + 0x1030]
jae 0x422810
mov eax, dword [ebp + 0x1028]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x102c], eax
jmp 0x422833
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x540780]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x42283e
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x4228f3
jmp 0x422841
or edx, 0xffffffff
mov edi, dword [esp + 0x14]
cmp byte [edi + 0xa088], 0
jne 0x4228f3
mov eax, dword [edi + 4]
xor ecx, ecx
add eax, 0xd552
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x44], 0x541b9c
mov dword [esp + 0x48], 0x541b9c
mov dword [esp + 0x4c], 0x541b9c
mov dword [esp + 0x50], 0x541b9c
mov dword [esp + 0x54], 0x541b9c
mov dword [esp + 0x58], 0x541b9c
mov dword [esp + 0x5c], 0x541b9c
mov dword [esp + 0x88], 0x38
mov dword [esp + 0x40], eax
mov dword [esp + 0x80], 1
call fcn.0049f740
push 3
mov ecx, 0x5b77e4
call fcn.0046e7a0
xor edx, edx
mov byte [edi + 0xa088], 1
mov ebp, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, dword [esp + 0x30]
jb 0x4227e0
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
and eax, ebx
lea eax, [ecx + eax*8]
movzx ecx, byte [eax + 1]
mov dword [esp + 0x14], eax
sub esi, ecx
mov eax, dword [eax + 4]
shr ebx, cl
cmp eax, 0x10
jae 0x422940
mov dword [esp + edx*4 + 0x8c], eax
inc edx
jmp 0x422c70
jne 0x422aba
cmp esi, 2
jae 0x422a79
nop
mov eax, dword [ebp]
mov ecx, dword [eax + 0xa078]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x38], eax
cmp ecx, dword [ebp + 0x1030]
jae 0x422980
mov eax, dword [ebp + 0x1028]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x102c], eax
jmp 0x4229a3
mov eax, dword [ebp]
lea ecx, [esp + 0x2d]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x540780]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x4229ae
movzx edx, byte [esp + 0x2d]
cmp edx, 0xffffffff
jne 0x422a63
jmp 0x4229b1
or edx, 0xffffffff
mov edi, dword [esp + 0x38]
cmp byte [edi + 0xa088], 0
jne 0x422a63
mov eax, dword [edi + 4]
xor ecx, ecx
add eax, 0xd552
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x44], 0x541b9c
mov dword [esp + 0x48], 0x541b9c
mov dword [esp + 0x4c], 0x541b9c
mov dword [esp + 0x50], 0x541b9c
mov dword [esp + 0x54], 0x541b9c
mov dword [esp + 0x58], 0x541b9c
mov dword [esp + 0x5c], 0x541b9c
mov dword [esp + 0x88], 0x38
mov dword [esp + 0x40], eax
mov dword [esp + 0x80], 1
call fcn.0049f740
push 3
mov ecx, 0x5b77e4
call fcn.0046e7a0
xor edx, edx
mov byte [edi + 0xa088], 1
mov ebp, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 2
jb 0x422950
mov edx, dword [esp + 0x1c]
mov ecx, ebx
mov edi, dword [esp + 0x34]
and ecx, 3
add edi, dword [esp + 0x20]
add ecx, 3
mov eax, dword [esp + 0x1c]
add edx, ecx
shr ebx, 2
sub esi, 2
cmp edx, edi
ja 0x422d93
lea edi, [esp + 0x8c]
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x28]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x20]
jmp 0x422c74
cmp eax, 0x11
jne 0x422b88
cmp esi, 3
jae 0x422b75
lea esp, [esp]
mov eax, dword [ebp]
mov ecx, dword [eax + 0xa078]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x38], eax
cmp ecx, dword [ebp + 0x1030]
jae 0x422b00
mov eax, dword [ebp + 0x1028]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x102c], eax
jmp 0x422b23
mov eax, dword [ebp]
lea ecx, [esp + 0x2e]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x540780]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x422b2a
movzx edx, byte [esp + 0x2e]
cmp edx, 0xffffffff
jne 0x422b5f
jmp 0x422b2d
or edx, 0xffffffff
mov edi, dword [esp + 0x38]
cmp byte [edi + 0xa088], 0
jne 0x422b5f
mov eax, dword [edi + 4]
add eax, 0xd552
push eax
push 0x38
call fcn.00415840
push 3
mov ecx, 0x5b77e4
call fcn.0046e7a0
xor edx, edx
mov byte [edi + 0xa088], 1
mov ebp, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 3
jb 0x422ad0
mov ecx, ebx
shr ebx, 3
and ecx, 7
add ecx, 3
sub esi, 3
jmp 0x422c44
cmp esi, 7
jae 0x422c36
mov eax, dword [ebp]
mov ecx, dword [eax + 0xa078]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x38], eax
cmp ecx, dword [ebp + 0x1030]
jae 0x422bc1
mov eax, dword [ebp + 0x1028]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x102c], eax
jmp 0x422be4
mov eax, dword [ebp]
lea ecx, [esp + 0x2f]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x540780]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x422beb
movzx edx, byte [esp + 0x2f]
cmp edx, 0xffffffff
jne 0x422c20
jmp 0x422bee
or edx, 0xffffffff
mov edi, dword [esp + 0x38]
cmp byte [edi + 0xa088], 0
jne 0x422c20
mov eax, dword [edi + 4]
add eax, 0xd552
push eax
push 0x38
call fcn.00415840
push 3
mov ecx, 0x5b77e4
call fcn.0046e7a0
xor edx, edx
mov byte [edi + 0xa088], 1
mov ebp, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 7
jb 0x422b91
mov ecx, ebx
shr ebx, 7
and ecx, 0x7f
add ecx, 0xb
sub esi, 7
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
add edx, ecx
mov eax, dword [esp + 0x1c]
cmp edx, edi
ja 0x422d93
lea edi, [esp + 0x8c]
lea edi, [edi + eax*4]
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
add eax, edi
mov dword [esp + 0x1c], edx
cmp edx, eax
jae 0x422c8f
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
jmp 0x4227d0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x422cb0
mov edi, dword [eax - 4]
sub eax, 8
push eax
call fcn.00524aa2
add esp, 4
mov eax, edi
test edi, edi
jne 0x422c97
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x34], 9
push eax
push 0x56d0c0
push 0x56d040
push 0x101
mov dword [ebp + 8], ebx
lea eax, [esp + 0xa0]
mov ebx, dword [esp + 0x48]
mov ecx, ebp
push ebx
push eax
mov dword [ebp + 0xc], esi
call fcn.00421420
mov esi, eax
test esi, esi
je 0x422d0c
cmp esi, 1
jne 0x422d05
push dword [esp + 0x24]
mov ecx, ebp
call fcn.004c29b0
mov eax, esi
jmp 0x422d98
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 6
push eax
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
push 0x56d1b8
push 0x56d140
push 0
lea eax, [esp + 0xa0]
push edi
lea eax, [eax + ebx*4]
push eax
call fcn.00421420
mov esi, eax
test esi, esi
je 0x422d62
cmp esi, 1
jne 0x422d53
push dword [esp + 0x14]
mov ecx, ebp
call fcn.004c29b0
push dword [esp + 0x24]
mov ecx, ebp
call fcn.004c29b0
mov eax, esi
jmp 0x422d98
push dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov ecx, ebp
push dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
push esi
push edi
call fcn.00421b00
test eax, eax
jne 0x422d93
push edi
mov ecx, ebp
call fcn.004c29b0
push esi
mov ecx, ebp
call fcn.004c29b0
xor eax, eax
jmp 0x422d98
mov eax, 1
mov ecx, dword [esp + 0x57c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00507712
add esp, 0x570
ret