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

Disassembly:
sub esp, 0x570
mov eax, dword [0x5513d4]
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 0x421f24
lea ecx, [ecx]
mov eax, dword [eax]
mov ecx, dword [eax + 0xa074]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x14], eax
cmp ecx, dword [ebp + 0x102c]
jae 0x421eaf
mov eax, dword [ebp + 0x1024]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x1028], eax
jmp 0x421ed2
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x523720]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x421ed9
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x421f0e
jmp 0x421edc
or edx, 0xffffffff
mov edi, dword [esp + 0x14]
cmp byte [edi + 0xa084], 0
jne 0x421f0e
mov eax, dword [edi + 4]
add eax, 0xb552
push eax
push 0x38
call fcn.00451e30
push 3
mov ecx, 0x58c304
call fcn.0046dd90
xor edx, edx
mov byte [edi + 0xa084], 1
mov eax, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 5
jb 0x421e80
mov ecx, ebx
sub esi, 5
and ecx, 0x1f
shr ebx, 5
add ecx, 0x101
mov dword [esp + 0x34], ecx
cmp esi, 5
jae 0x421fe6
mov eax, dword [eax]
mov ecx, dword [eax + 0xa074]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x14], eax
cmp ecx, dword [ebp + 0x102c]
jae 0x421f71
mov eax, dword [ebp + 0x1024]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x1028], eax
jmp 0x421f94
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x523720]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x421f9b
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x421fd0
jmp 0x421f9e
or edx, 0xffffffff
mov edi, dword [esp + 0x14]
cmp byte [edi + 0xa084], 0
jne 0x421fd0
mov eax, dword [edi + 4]
add eax, 0xb552
push eax
push 0x38
call fcn.00451e30
push 3
mov ecx, 0x58c304
call fcn.0046dd90
xor edx, edx
mov byte [edi + 0xa084], 1
mov eax, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 5
jb 0x421f42
mov ecx, ebx
sub esi, 5
and ecx, 0x1f
shr ebx, 5
inc ecx
mov dword [esp + 0x20], ecx
cmp esi, 4
jae 0x4220a8
nop
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax + 0xa074]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x14], eax
cmp ecx, dword [ebp + 0x102c]
jae 0x422033
mov eax, dword [ebp + 0x1024]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x1028], eax
jmp 0x422056
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x523720]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x42205d
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x422092
jmp 0x422060
or edx, 0xffffffff
mov edi, dword [esp + 0x14]
cmp byte [edi + 0xa084], 0
jne 0x422092
mov eax, dword [edi + 4]
add eax, 0xb552
push eax
push 0x38
call fcn.00451e30
push 3
mov ecx, 0x58c304
call fcn.0046dd90
xor edx, edx
mov byte [edi + 0xa084], 1
mov ecx, esi
add esi, 8
shl edx, cl
or ebx, edx
cmp esi, 4
jb 0x422000
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 0x422823
cmp ecx, 0x1e
ja 0x422823
xor edx, edx
mov dword [esp + 0x14], edx
test eax, eax
je 0x4221c5
nop
cmp esi, 3
jae 0x422198
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax + 0xa074]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x28], eax
cmp ecx, dword [ebp + 0x102c]
jae 0x422123
mov eax, dword [ebp + 0x1024]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x1028], eax
jmp 0x422146
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x523720]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x42214d
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x422182
jmp 0x422150
or edx, 0xffffffff
mov edi, dword [esp + 0x28]
cmp byte [edi + 0xa084], 0
jne 0x422182
mov eax, dword [edi + 4]
add eax, 0xb552
push eax
push 0x38
call fcn.00451e30
push 3
mov ecx, 0x58c304
call fcn.0046dd90
xor edx, edx
mov byte [edi + 0xa084], 1
mov ecx, esi
add esi, 8
shl edx, cl
or ebx, edx
cmp esi, 3
jb 0x4220f0
mov edx, dword [esp + 0x14]
mov eax, dword [edx*4 + 0x549278]
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 0x4220e0
cmp edx, 0x13
jae 0x4221dd
mov eax, dword [edx*4 + 0x549278]
inc edx
mov dword [esp + eax*4 + 0x8c], 0
cmp edx, 0x13
jb 0x4221c5
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.00420eb0
mov edi, eax
test edi, edi
je 0x42223c
cmp edi, 1
jne 0x422235
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x422235
lea ecx, [ecx]
mov esi, dword [ecx - 4]
sub ecx, 8
push ecx
call fcn.005097b2
add esp, 4
mov ecx, esi
test esi, esi
jne 0x422220
mov eax, edi
jmp 0x422828
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
mov eax, dword [ecx*4 + 0x549230]
mov dword [esp + 0x3c], eax
xor eax, eax
xor edx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
jmp 0x422260
cmp esi, ecx
jae 0x4223a2
jmp 0x422270
mov eax, dword [ebp]
mov ecx, dword [eax + 0xa074]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x14], eax
cmp ecx, dword [ebp + 0x102c]
jae 0x4222a0
mov eax, dword [ebp + 0x1024]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x1028], eax
jmp 0x4222c3
mov eax, dword [ebp]
lea ecx, [esp + 0x13]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x523720]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x4222ce
movzx edx, byte [esp + 0x13]
cmp edx, 0xffffffff
jne 0x422383
jmp 0x4222d1
or edx, 0xffffffff
mov edi, dword [esp + 0x14]
cmp byte [edi + 0xa084], 0
jne 0x422383
mov eax, dword [edi + 4]
xor ecx, ecx
add eax, 0xb552
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], 0x52452c
mov dword [esp + 0x48], 0x52452c
mov dword [esp + 0x4c], 0x52452c
mov dword [esp + 0x50], 0x52452c
mov dword [esp + 0x54], 0x52452c
mov dword [esp + 0x58], 0x52452c
mov dword [esp + 0x5c], 0x52452c
mov dword [esp + 0x88], 0x38
mov dword [esp + 0x40], eax
mov dword [esp + 0x80], 1
call fcn.0049ea30
push 3
mov ecx, 0x58c304
call fcn.0046dd90
xor edx, edx
mov byte [edi + 0xa084], 1
mov ebp, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, dword [esp + 0x30]
jb 0x422270
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 0x4223d0
mov dword [esp + edx*4 + 0x8c], eax
inc edx
jmp 0x422700
jne 0x42254a
cmp esi, 2
jae 0x422509
nop
mov eax, dword [ebp]
mov ecx, dword [eax + 0xa074]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x38], eax
cmp ecx, dword [ebp + 0x102c]
jae 0x422410
mov eax, dword [ebp + 0x1024]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x1028], eax
jmp 0x422433
mov eax, dword [ebp]
lea ecx, [esp + 0x2d]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x523720]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x42243e
movzx edx, byte [esp + 0x2d]
cmp edx, 0xffffffff
jne 0x4224f3
jmp 0x422441
or edx, 0xffffffff
mov edi, dword [esp + 0x38]
cmp byte [edi + 0xa084], 0
jne 0x4224f3
mov eax, dword [edi + 4]
xor ecx, ecx
add eax, 0xb552
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], 0x52452c
mov dword [esp + 0x48], 0x52452c
mov dword [esp + 0x4c], 0x52452c
mov dword [esp + 0x50], 0x52452c
mov dword [esp + 0x54], 0x52452c
mov dword [esp + 0x58], 0x52452c
mov dword [esp + 0x5c], 0x52452c
mov dword [esp + 0x88], 0x38
mov dword [esp + 0x40], eax
mov dword [esp + 0x80], 1
call fcn.0049ea30
push 3
mov ecx, 0x58c304
call fcn.0046dd90
xor edx, edx
mov byte [edi + 0xa084], 1
mov ebp, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 2
jb 0x4223e0
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 0x422823
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 0x422704
cmp eax, 0x11
jne 0x422618
cmp esi, 3
jae 0x422605
lea esp, [esp]
mov eax, dword [ebp]
mov ecx, dword [eax + 0xa074]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x38], eax
cmp ecx, dword [ebp + 0x102c]
jae 0x422590
mov eax, dword [ebp + 0x1024]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x1028], eax
jmp 0x4225b3
mov eax, dword [ebp]
lea ecx, [esp + 0x2e]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x523720]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x4225ba
movzx edx, byte [esp + 0x2e]
cmp edx, 0xffffffff
jne 0x4225ef
jmp 0x4225bd
or edx, 0xffffffff
mov edi, dword [esp + 0x38]
cmp byte [edi + 0xa084], 0
jne 0x4225ef
mov eax, dword [edi + 4]
add eax, 0xb552
push eax
push 0x38
call fcn.00451e30
push 3
mov ecx, 0x58c304
call fcn.0046dd90
xor edx, edx
mov byte [edi + 0xa084], 1
mov ebp, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 3
jb 0x422560
mov ecx, ebx
shr ebx, 3
and ecx, 7
add ecx, 3
sub esi, 3
jmp 0x4226d4
cmp esi, 7
jae 0x4226c6
mov eax, dword [ebp]
mov ecx, dword [eax + 0xa074]
lea ebp, [eax + 0x904c]
mov dword [esp + 0x38], eax
cmp ecx, dword [ebp + 0x102c]
jae 0x422651
mov eax, dword [ebp + 0x1024]
movzx edx, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [ebp + 0x1028], eax
jmp 0x422674
mov eax, dword [ebp]
lea ecx, [esp + 0x2f]
push 1
push ecx
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x523720]
mov ecx, ebp
call edi
cmp eax, 1
jne 0x42267b
movzx edx, byte [esp + 0x2f]
cmp edx, 0xffffffff
jne 0x4226b0
jmp 0x42267e
or edx, 0xffffffff
mov edi, dword [esp + 0x38]
cmp byte [edi + 0xa084], 0
jne 0x4226b0
mov eax, dword [edi + 4]
add eax, 0xb552
push eax
push 0x38
call fcn.00451e30
push 3
mov ecx, 0x58c304
call fcn.0046dd90
xor edx, edx
mov byte [edi + 0xa084], 1
mov ebp, dword [esp + 0x18]
mov ecx, esi
shl edx, cl
add esi, 8
or ebx, edx
cmp esi, 7
jb 0x422621
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 0x422823
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 0x42271f
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
jmp 0x422260
mov eax, dword [esp + 0x24]
test eax, eax
je 0x422740
mov edi, dword [eax - 4]
sub eax, 8
push eax
call fcn.005097b2
add esp, 4
mov eax, edi
test edi, edi
jne 0x422727
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 0x5490c0
push 0x549040
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.00420eb0
mov esi, eax
test esi, esi
je 0x42279c
cmp esi, 1
jne 0x422795
push dword [esp + 0x24]
mov ecx, ebp
call fcn.004c1b40
mov eax, esi
jmp 0x422828
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 6
push eax
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
push 0x5491b8
push 0x549140
push 0
lea eax, [esp + 0xa0]
push edi
lea eax, [eax + ebx*4]
push eax
call fcn.00420eb0
mov esi, eax
test esi, esi
je 0x4227f2
cmp esi, 1
jne 0x4227e3
push dword [esp + 0x14]
mov ecx, ebp
call fcn.004c1b40
push dword [esp + 0x24]
mov ecx, ebp
call fcn.004c1b40
mov eax, esi
jmp 0x422828
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.00421590
test eax, eax
jne 0x422823
push edi
mov ecx, ebp
call fcn.004c1b40
push esi
mov ecx, ebp
call fcn.004c1b40
xor eax, eax
jmp 0x422828
mov eax, 1
mov ecx, dword [esp + 0x57c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00502f8e
add esp, 0x570
ret