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

Disassembly:
push 0xffffffffffffffff
push 0x43dac8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c
push esi
push edi
mov edi, dword [0x43fc10]
mov esi, ecx
push 0x12
call edi
push 0x10
mov dword [esp + 0x1c], eax
call edi
push 0x11
mov dword [esp + 0x20], eax
call edi
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00428710
test eax, eax
jne 0x4222d1
call fcn.0043b2e8
mov eax, dword [eax + 4]
mov edi, dword [eax + 0x20]
mov eax, dword [esi + 0x40]
mov dword [esp + 0xc], eax
mov ax, word [edi + 0x1314]
lea ecx, [edi + 0x1280]
test ax, ax
mov dword [esp + 0x38], ecx
je 0x421237
mov dword [esp + 8], eax
jmp 0x421243
mov dx, word [edi + 0x130c]
mov word [esp + 8], dx
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4222d1
mov eax, dword [esi + 0x178]
mov dword [esi + 0x1a4], 0
test eax, eax
jne 0x4222d1
mov ecx, dword [esi + 0x1b8]
or eax, 0xffffffff
cmp ecx, eax
je 0x42128c
mov dword [esi + 0x1b8], eax
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x1c0], eax
mov dword [esi + 0x1c4], eax
mov ecx, dword [esi + 0x20]
push ebx
lea eax, [esp + 0x48]
push ebp
push eax
push ecx
call dword [fcn.0043fc00]
push 1
lea edx, [esp + 0x78]
push 0
lea eax, [esp + 0x40]
push edx
push eax
mov ecx, esi
call fcn.004260a0
mov ebx, dword [eax]
mov ebp, dword [esp + 0x70]
test ebp, ebp
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ecx
jne 0x4212fe
lea edx, [esp + 0x38]
mov ecx, esi
push edx
call fcn.0043b6e4
push 1
lea eax, [esp + 0x3c]
push ebp
lea ecx, [esp + 0x30]
push eax
push ecx
mov ecx, esi
call fcn.004260a0
mov edx, eax
mov eax, dword [edx]
add ebx, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [edx + 4]
mov dword [esp + 0x30], ebx
add eax, ecx
mov dword [esp + 0x34], eax
mov ax, word [edi + 0x500]
xor edx, edx
cmp ax, dx
je 0x421310
mov edi, eax
jmp 0x421317
mov di, word [edi + 0x4fc]
mov eax, edi
mov dword [esp + 0x38], edi
and eax, 0xffff
add eax, 0xffffec5a
cmp eax, 0xd
ja case.0x421330.5036
jmp dword [eax*4 + 0x4222e4]
cmp ebp, edx
je case.0x421330.5036
xor eax, eax
mov ecx, dword [esp + 0x78]
mov al, byte [esp + 0x21]
mov edx, dword [esp + 0x74]
not al
and eax, 0xff
push 0
shr eax, 7
push eax
push ecx
push edx
mov ecx, esi
mov dword [esi + 0x164], eax
call fcn.00426180
jmp case.0x421330.5036
mov eax, dword [esi + 0x20]
push 1
push 0
push eax
call dword [fcn.0043fc4c]
jmp case.0x421330.5036
mov eax, dword [esi + 0x1d0]
cmp eax, 1
mov dword [esp + 0x18], eax
jg 0x4213a8
xor ecx, ecx
mov cl, byte [esp + 0x1d]
test cl, 0x80
jne 0x4213a8
cmp word [esp + 0x10], 0x800
jne case.0x421330.5036
mov edx, dword [esp + 0x14]
mov dword [esp + 0x6c], 0
mov eax, dword [edx + 0x98]
lea ebp, [edx + 0x54]
test eax, eax
jg 0x421452
mov eax, dword [ebp + 0x40]
test eax, eax
jl 0x421452
mov eax, dword [0x44a7cc]
mov dword [ebp + 0x40], eax
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
jle 0x421410
lea ebx, [ebp + 4]
mov ecx, ebx
call fcn.0043ba74
mov edi, eax
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4213f9
mov edx, dword [ecx]
push 1
call dword [edx + 4]
test edi, edi
je 0x421406
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x40]
cmp ecx, eax
jg 0x4213e2
mov ecx, ebp
call fcn.0041be60
mov eax, dword [ebp + 0x40]
test eax, eax
jle 0x421452
lea edx, [esp + 0x6c]
mov ecx, ebp
push edx
call fcn.00428ba0
mov edi, eax
test edi, edi
je 0x42144b
mov eax, dword [esp + 0x6c]
push 0
push eax
mov ecx, ebp
call fcn.00428d30
push edi
mov ecx, ebp
mov dword [edi + 8], eax
call fcn.00428b00
jmp 0x421452
mov ecx, ebp
call fcn.00428e00
mov ecx, dword [esi + 0x1cc]
test ecx, ecx
je case.0x421330.5036
mov ebp, dword [esp + 0x10]
xor ebx, ebx
mov bl, byte [esp + 0x1d]
and bl, 0x80
jne 0x421476
cmp bp, 0x800
jne 0x421497
cmp dword [esp + 0x18], 1
jne 0x421497
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
lea edx, [ecx + 1]
push edx
lea edx, [eax + 1]
push edx
push ecx
push eax
call dword [fcn.0043f318]
jmp 0x4214a7
mov eax, dword [esi + 0x1d0]
push 2
push eax
push ecx
call dword [0x43f368]
test eax, eax
mov dword [esi + 0x26c], eax
je case.0x421330.5036
mov edi, dword [0x43f340]
test bl, bl
jne 0x4214c6
cmp bp, 0x800
jne 0x4214d9
cmp dword [esp + 0x18], 1
jne 0x4214d9
mov ecx, dword [esi + 0x254]
push 2
push eax
push ecx
jmp 0x421508
xor edx, edx
mov dl, byte [esp + 0x25]
test dl, 0x80
jne 0x4214fe
cmp bp, 0x7fe
je 0x4214fe
cmp bp, 0x7ff
jne 0x42150b
mov ecx, dword [esi + 0x254]
push 4
push eax
push ecx
jmp 0x421508
mov edx, dword [esi + 0x254]
push 2
push eax
push edx
push eax
call edi
push 0x13a7
mov ecx, esi
call fcn.00423c00
test eax, eax
je 0x421527
mov eax, dword [esi + 0x26c]
push 5
push 0
jmp 0x421536
mov edx, dword [esi + 0x26c]
mov eax, dword [esi + 0x258]
push 1
push edx
mov ecx, dword [esi + 0x254]
push eax
push ecx
call edi
mov ecx, dword [esp + 0x14]
push 1
mov edx, dword [ecx]
call dword [edx + 0x64]
mov eax, dword [esi + 0x26c]
push eax
call dword [fcn.0043f328]
mov eax, dword [esp + 0x70]
test eax, eax
je case.0x421330.5036
mov ecx, dword [esi + 0x20]
push 1
push 0
push ecx
call dword [fcn.0043fc4c]
jmp case.0x421330.5036
mov eax, dword [esi + 0x1e4]
cmp eax, 1
mov dword [esp + 0x18], eax
jg 0x42159e
xor edx, edx
mov dl, byte [esp + 0x1d]
test dl, 0x80
jne 0x42159e
cmp word [esp + 0x10], 0x800
jne case.0x421330.5036
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], 0
lea ebp, [eax + 0x54]
mov eax, dword [eax + 0x98]
test eax, eax
jg 0x42164b
mov eax, dword [ebp + 0x40]
test eax, eax
jl 0x42164b
mov ecx, dword [0x44a7cc]
mov dword [ebp + 0x40], ecx
mov edx, dword [ebp + 0x10]
mov eax, ecx
cmp edx, eax
jle 0x421609
lea ebx, [ebp + 4]
mov ecx, ebx
call fcn.0043ba74
mov edi, eax
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4215f2
mov eax, dword [ecx]
push 1
call dword [eax + 4]
test edi, edi
je 0x4215ff
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x40]
cmp eax, ecx
jg 0x4215db
mov ecx, ebp
call fcn.0041be60
mov eax, dword [ebp + 0x40]
test eax, eax
jle 0x42164b
lea ecx, [esp + 0x6c]
push ecx
mov ecx, ebp
call fcn.00428ba0
mov edi, eax
test edi, edi
je 0x421644
mov edx, dword [esp + 0x6c]
push 0
push edx
mov ecx, ebp
call fcn.00428d30
push edi
mov ecx, ebp
mov dword [edi + 8], eax
call fcn.00428b00
jmp 0x42164b
mov ecx, ebp
call fcn.00428e00
mov ecx, dword [esi + 0x1e0]
test ecx, ecx
je case.0x421330.5036
mov ebp, dword [esp + 0x10]
xor ebx, ebx
mov bl, byte [esp + 0x1d]
and bl, 0x80
jne 0x42166f
cmp bp, 0x800
jne 0x421690
cmp dword [esp + 0x18], 1
jne 0x421690
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 1]
push eax
mov eax, dword [esp + 0x34]
lea edx, [eax + 1]
push edx
push ecx
push eax
call dword [fcn.0043f318]
jmp 0x4216a0
mov eax, dword [esi + 0x1e4]
push 2
push eax
push ecx
call dword [0x43f368]
test eax, eax
mov dword [esi + 0x26c], eax
je case.0x421330.5036
test bl, bl
jne 0x4216b9
cmp bp, 0x800
jne 0x4216cc
cmp dword [esp + 0x18], 1
jne 0x4216cc
mov ecx, dword [esi + 0x258]
push 4
push eax
push ecx
jmp 0x42170c
xor edx, edx
mov dl, byte [esp + 0x25]
test dl, 0x80
jne 0x421702
cmp bp, 0x7fe
je 0x421702
xor ecx, ecx
mov cl, byte [esp + 0x21]
test cl, 0x80
jne 0x4216c0
cmp bp, 0x7ff
je 0x4216c0
mov edx, dword [esi + 0x254]
push 1
push eax
mov eax, dword [esi + 0x258]
push edx
jmp 0x42170c
mov edx, dword [esi + 0x258]
push 2
push eax
push edx
mov edi, dword [0x43f340]
push eax
call edi
cmp eax, 1
je 0x421733
mov eax, dword [esi + 0x26c]
mov ecx, dword [esi + 0x254]
mov edx, dword [esi + 0x258]
push 2
push eax
push ecx
push edx
jmp 0x421777
test bl, bl
jne 0x421779
cmp bp, 0x800
jne 0x421745
cmp dword [esp + 0x18], 1
je 0x421779
push 0x13a6
mov ecx, esi
call fcn.00423c00
test eax, eax
push 5
push 0
je 0x421769
mov eax, dword [esi + 0x26c]
mov ecx, dword [esi + 0x258]
push eax
push ecx
jmp 0x421777
mov edx, dword [esi + 0x254]
mov eax, dword [esi + 0x258]
push edx
push eax
call edi
mov ecx, dword [esp + 0x14]
push 1
mov edx, dword [ecx]
call dword [edx + 0x64]
mov eax, dword [esi + 0x26c]
push eax
call dword [fcn.0043f328]
mov eax, dword [esp + 0x70]
test eax, eax
je case.0x421330.5036
mov ecx, dword [esi + 0x20]
push 1
push 0
push ecx
call dword [fcn.0043fc4c]
jmp case.0x421330.5036
mov eax, dword [esi + 0x1f8]
cmp eax, 1
mov dword [esp + 0x18], eax
jg 0x4217d6
xor eax, eax
mov al, byte [esp + 0x1d]
test al, 0x80
jne 0x4217d6
cmp word [esp + 0x10], 0x800
jne case.0x421330.5036
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov eax, dword [ecx + 0x98]
lea edi, [ecx + 0x54]
cmp eax, edx
jg 0x4218d1
mov eax, dword [edi + 0x40]
test eax, eax
jl 0x4218d1
mov edx, dword [0x44a7cc]
mov dword [edi + 0x40], edx
mov eax, dword [edi + 0x10]
mov ecx, edx
cmp eax, ecx
jle 0x42183e
lea ebx, [edi + 4]
mov ecx, ebx
call fcn.0043ba74
mov ebp, eax
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x421826
mov eax, dword [ecx]
push 1
call dword [eax + 4]
test ebp, ebp
je 0x421834
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 4]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x40]
cmp eax, ecx
jg 0x42180f
mov ecx, edi
call fcn.0041be60
mov eax, dword [edi + 0x40]
test eax, eax
jle 0x4218d1
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.00428ba0
mov ebp, eax
test ebp, ebp
je 0x42187d
mov ecx, dword [esp + 0x28]
push 0
push ecx
mov ecx, edi
call fcn.00428d30
push ebp
mov ecx, edi
mov dword [ebp + 8], eax
call fcn.00428b00
jmp 0x4218d1
lea ecx, [esp + 0x6c]
call fcn.0043b30c
mov ecx, edi
mov dword [esp + 0x64], 0
call fcn.0041bea0
mov ecx, edi
call fcn.0041be60
mov edx, dword [edi + 0x40]
lea eax, [esp + 0x6c]
push edx
push 0x177a
push eax
call fcn.0043ba8c
mov ecx, dword [esp + 0x78]
add esp, 0xc
push 0
push 0x30
push ecx
call fcn.0043b2f4
lea ecx, [esp + 0x6c]
mov dword [esp + 0x64], 0xffffffff
call fcn.0043b2fa
mov ecx, dword [esi + 0x1f4]
test ecx, ecx
je case.0x421330.5036
xor ebx, ebx
mov bl, byte [esp + 0x1d]
and bl, 0x80
jne 0x4218f3
cmp word [esp + 0x10], 0x800
jne 0x421914
cmp dword [esp + 0x18], 1
jne 0x421914
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
lea edx, [ecx + 1]
push edx
lea edx, [eax + 1]
push edx
push ecx
push eax
call dword [fcn.0043f318]
jmp 0x421924
mov eax, dword [esi + 0x1f8]
push 2
push eax
push ecx
call dword [0x43f368]
test eax, eax
mov dword [esi + 0x26c], eax
je case.0x421330.5036
mov edi, dword [0x43f340]
mov ecx, dword [esp + 0x10]
test bl, bl
jne 0x421947
cmp cx, 0x800
jne 0x42195a
cmp dword [esp + 0x18], 1
jne 0x42195a
mov ecx, dword [esi + 0x25c]
push 2
push eax
push ecx
jmp 0x421994
xor edx, edx
mov dl, byte [esp + 0x25]
test dl, 0x80
jne 0x42198a
cmp cx, 0x7fe
je 0x42198a
xor edx, edx
mov dl, byte [esp + 0x21]
test dl, 0x80
jne 0x42197e
cmp cx, 0x7ff
jne 0x421997
mov ecx, dword [esi + 0x25c]
push 4
push eax
push ecx
jmp 0x421994
mov edx, dword [esi + 0x25c]
push 2
push eax
push edx
push eax
call edi
push 0x13a9
mov ecx, esi
call fcn.00423c00
test eax, eax
je 0x4219b3
mov eax, dword [esi + 0x26c]
push 5
push 0
jmp 0x4219c2
mov edx, dword [esi + 0x26c]
mov eax, dword [esi + 0x260]
push 1
push edx
mov ecx, dword [esi + 0x25c]
push eax
push ecx
call edi
mov ecx, dword [esp + 0x14]
push 1
mov edx, dword [ecx]
call dword [edx + 0x64]
mov eax, dword [esi + 0x26c]
push eax
call dword [fcn.0043f328]
mov eax, dword [esp + 0x70]
test eax, eax
je case.0x421330.5036
mov ecx, dword [esi + 0x20]
push 1
push 0
push ecx
call dword [fcn.0043fc4c]
jmp case.0x421330.5036
mov eax, dword [esi + 0x20c]
cmp eax, 1
mov dword [esp + 0x18], eax
jg 0x421a29
xor eax, eax
mov al, byte [esp + 0x1d]
test al, 0x80
jne 0x421a29
cmp word [esp + 0x10], 0x800
jne case.0x421330.5036
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov eax, dword [ecx + 0x98]
lea edi, [ecx + 0x54]
cmp eax, edx
jg 0x421b28
mov eax, dword [edi + 0x40]
test eax, eax
jl 0x421b28
mov edx, dword [0x44a7cc]
mov dword [edi + 0x40], edx
mov eax, dword [edi + 0x10]
mov ecx, edx
cmp eax, ecx
jle 0x421a95
lea ebx, [edi + 4]
mov ecx, ebx
call fcn.0043ba74
mov ebp, eax
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x421a79
mov eax, dword [ecx]
push 1
call dword [eax + 4]
test ebp, ebp
je 0x421a87
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 4]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x40]
cmp eax, ecx
jg 0x421a62
mov ebx, dword [esp + 0x30]
mov ecx, edi
call fcn.0041be60
mov eax, dword [edi + 0x40]
test eax, eax
jle 0x421b28
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.00428ba0
mov ebp, eax
test ebp, ebp
je 0x421ad4
mov ecx, dword [esp + 0x28]
push 0
push ecx
mov ecx, edi
call fcn.00428d30
push ebp
mov ecx, edi
mov dword [ebp + 8], eax
call fcn.00428b00
jmp 0x421b28
lea ecx, [esp + 0x6c]
call fcn.0043b30c
mov ecx, edi
mov dword [esp + 0x64], 1
call fcn.0041bea0
mov ecx, edi
call fcn.0041be60
mov edx, dword [edi + 0x40]
lea eax, [esp + 0x6c]
push edx
push 0x177a
push eax
call fcn.0043ba8c
mov ecx, dword [esp + 0x78]
add esp, 0xc
push 0
push 0x30
push ecx
call fcn.0043b2f4
lea ecx, [esp + 0x6c]
mov dword [esp + 0x64], 0xffffffff
call fcn.0043b2fa
mov ecx, dword [esi + 0x208]
test ecx, ecx
je case.0x421330.5036
mov ebp, dword [esp + 0x10]
xor eax, eax
mov al, byte [esp + 0x1d]
and al, 0x80
mov byte [esp + 0x6c], al
jne 0x421b4f
cmp bp, 0x800
jne 0x421b6c
cmp dword [esp + 0x18], 1
jne 0x421b6c
mov eax, dword [esp + 0x34]
lea ecx, [ebx + 1]
lea edx, [eax + 1]
push edx
push ecx
push eax
push ebx
call dword [fcn.0043f318]
jmp 0x421b7c
mov eax, dword [esi + 0x20c]
push 2
push eax
push ecx
call dword [0x43f368]
test eax, eax
mov dword [esi + 0x26c], eax
je case.0x421330.5036
mov bl, byte [esp + 0x6c]
test bl, bl
jne 0x421b99
cmp bp, 0x800
jne 0x421bac
cmp dword [esp + 0x18], 1
jne 0x421bac
mov edx, dword [esi + 0x260]
push 4
push eax
push edx
jmp 0x421bed
xor ecx, ecx
mov cl, byte [esp + 0x25]
test cl, 0x80
jne 0x421be3
cmp bp, 0x7fe
je 0x421be3
xor edx, edx
mov dl, byte [esp + 0x21]
test dl, 0x80
jne 0x421ba0
cmp bp, 0x7ff
je 0x421ba0
mov ecx, dword [esi + 0x260]
push 1
push eax
mov eax, dword [esi + 0x25c]
push eax
push ecx
jmp 0x421bee
mov ecx, dword [esi + 0x260]
push 2
push eax
push ecx
push eax
mov edi, dword [0x43f340]
call edi
cmp eax, 1
je 0x421c19
mov edx, dword [esi + 0x26c]
mov eax, dword [esi + 0x25c]
mov ecx, dword [esi + 0x260]
push 2
push edx
push eax
push ecx
call edi
jmp 0x421f5a
test bl, bl
jne 0x421f5a
cmp bp, 0x800
jne 0x421c33
cmp dword [esp + 0x18], 1
je 0x421f5a
push 0x13a8
mov ecx, esi
call fcn.00423c00
test eax, eax
push 5
push 0
je 0x421c5c
mov edx, dword [esi + 0x26c]
mov eax, dword [esi + 0x260]
push edx
push eax
call edi
jmp 0x421f5a
mov ecx, dword [esi + 0x25c]
mov edx, dword [esi + 0x260]
push ecx
push edx
call edi
jmp 0x421f5a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], 0
lea ebp, [eax + 0x54]
mov eax, dword [eax + 0x98]
test eax, eax
jg 0x421d5e
mov eax, dword [ebp + 0x40]
test eax, eax
jl 0x421d5e
mov ecx, dword [0x44a7cc]
mov dword [ebp + 0x40], ecx
mov edx, dword [ebp + 0x10]
mov eax, ecx
cmp edx, eax
jle 0x421cdc
lea ebx, [ebp + 4]
mov ecx, ebx
call fcn.0043ba74
mov edi, eax
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x421cc5
mov eax, dword [ecx]
push 1
call dword [eax + 4]
test edi, edi
je 0x421cd2
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x40]
cmp eax, ecx
jg 0x421cae
mov eax, dword [ebp + 0x24]
test eax, eax
mov dword [esp + 0x6c], eax
je 0x421d1b
lea ebx, [ebp + 0x20]
lea ecx, [esp + 0x6c]
push ecx
mov ecx, ebx
call fcn.00422340
mov edi, dword [eax]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x421d06
mov edx, dword [ecx]
push 1
call dword [edx + 4]
test edi, edi
je 0x421d13
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x421cea
lea ecx, [ebp + 0x20]
call fcn.0043b8a6
mov eax, dword [ebp + 0x40]
test eax, eax
jle 0x421d5e
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.00428ba0
mov edi, eax
test edi, edi
je 0x421d57
mov edx, dword [esp + 0x28]
push 0
push edx
mov ecx, ebp
call fcn.00428d30
push edi
mov ecx, ebp
mov dword [edi + 8], eax
call fcn.00428b00
jmp 0x421d5e
mov ecx, ebp
call fcn.00428e00
mov ecx, dword [esi + 0x21c]
test ecx, ecx
je case.0x421330.5036
mov eax, dword [esi + 0x220]
push 2
push eax
push ecx
call dword [0x43f368]
xor ecx, ecx
mov dword [esi + 0x26c], eax
mov cl, byte [esp + 0x25]
test cl, 0x80
jne 0x421dc2
mov ecx, dword [esp + 0x10]
cmp cx, 0x808
je 0x421dc2
xor edx, edx
mov dl, byte [esp + 0x21]
test dl, 0x80
jne 0x421db8
cmp cx, 0x809
je 0x421db8
push 5
push 0
push eax
mov eax, dword [esi + 0x264]
push eax
jmp 0x421dcd
mov ecx, dword [esi + 0x264]
push 4
jmp 0x421dca
mov ecx, dword [esi + 0x264]
push 2
push eax
push ecx
push ecx
call dword [0x43f340]
mov ecx, dword [esp + 0x14]
push 1
mov edx, dword [ecx]
call dword [edx + 0x64]
mov eax, dword [esi + 0x26c]
push eax
call dword [fcn.0043f328]
mov eax, dword [esp + 0x70]
test eax, eax
je case.0x421330.5036
mov ecx, dword [esi + 0x20]
push 1
push 0
push ecx
call dword [fcn.0043fc4c]
jmp case.0x421330.5036
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], 0
mov eax, dword [edx + 0x98]
lea ebp, [edx + 0x54]
test eax, eax
jg 0x421ef4
mov eax, dword [ebp + 0x40]
test eax, eax
jl 0x421ef4
mov eax, dword [0x44a7cc]
mov dword [ebp + 0x40], eax
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
jle 0x421e72
lea ebx, [ebp + 4]
mov ecx, ebx
call fcn.0043ba74
mov edi, eax
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x421e5b
mov edx, dword [ecx]
push 1
call dword [edx + 4]
test edi, edi
je 0x421e68
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x40]
cmp ecx, eax
jg 0x421e44
mov eax, dword [ebp + 0x24]
test eax, eax
mov dword [esp + 0x6c], eax
je 0x421eb1
lea ebx, [ebp + 0x20]
lea edx, [esp + 0x6c]
mov ecx, ebx
push edx
call fcn.00422340
mov edi, dword [eax]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x421e9c
mov eax, dword [ecx]
push 1
call dword [eax + 4]
test edi, edi
je 0x421ea9
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x421e80
lea ecx, [ebp + 0x20]
call fcn.0043b8a6
mov eax, dword [ebp + 0x40]
test eax, eax
jle 0x421ef4
lea eax, [esp + 0x28]
mov ecx, ebp
push eax
call fcn.00428ba0
mov edi, eax
test edi, edi
je 0x421eed
mov ecx, dword [esp + 0x28]
push 0
push ecx
mov ecx, ebp
call fcn.00428d30
push edi
mov ecx, ebp
mov dword [edi + 8], eax
call fcn.00428b00
jmp 0x421ef4
mov ecx, ebp
call fcn.00428e00
mov ecx, dword [esi + 0x230]
test ecx, ecx
je case.0x421330.5036
mov eax, dword [esi + 0x234]
push 2
push eax
push ecx
call dword [0x43f368]
xor edx, edx
mov dword [esi + 0x26c], eax
mov dl, byte [esp + 0x25]
test dl, 0x80
je 0x421f30
mov ecx, dword [esi + 0x268]
push 2
push eax
push ecx
push ecx
jmp 0x421f54
xor ecx, ecx
mov cl, byte [esp + 0x21]
test cl, 0x80
je 0x421f48
mov ecx, dword [esi + 0x268]
push 4
push eax
push ecx
push ecx
jmp 0x421f54
mov edx, dword [esi + 0x268]
push 5
push 0
push eax
push edx
call dword [0x43f340]
mov ecx, dword [esp + 0x14]
push 1
mov eax, dword [ecx]
call dword [eax + 0x64]
mov ecx, dword [esi + 0x26c]
push ecx
call dword [fcn.0043f328]
mov eax, dword [esp + 0x70]
test eax, eax
je case.0x421330.5036
mov edx, dword [esi + 0x20]
push 1
push 0
push edx
call dword [fcn.0043fc4c]
jmp case.0x421330.5036
cmp ebp, edx
jne 0x421fa2
cmp word [esp + 0x10], 0x80b
je case.0x421330.5036
mov ecx, dword [esi + 0x244]
cmp ecx, edx
je case.0x421330.5036
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0x440c34
mov eax, dword [esi + 0x248]
push 2
push eax
push ecx
mov dword [esp + 0x70], 2
call dword [0x43f368]
push eax
lea ecx, [esp + 0x48]
call fcn.0043b63c
xor eax, eax
mov al, byte [esp + 0x21]
test al, 0x80
jne 0x421ff5
cmp word [esp + 0x10], 0x80c
jne 0x42202b
cmp dword [esi + 0x248], 1
jle 0x42202b
cmp di, 0x13aa
jne 0x422016
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xfe8]
jmp 0x422025
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x44]
push eax
mov edx, dword [ecx + 0xfec]
push edx
call fcn.00418170
cmp word [esp + 0x10], 0x80d
je 0x422262
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], 0
lea ebx, [eax + 0x54]
mov eax, dword [eax + 0x98]
test eax, eax
jg 0x422234
mov eax, dword [ebx + 0x40]
test eax, eax
jl 0x422234
mov ecx, dword [0x44a7cc]
mov dword [ebx + 0x40], ecx
mov eax, dword [ebx + 0x10]
cmp eax, ecx
jle 0x4220a1
lea ebp, [ebx + 4]
mov ecx, ebp
call fcn.0043ba74
mov edi, eax
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x42208a
mov edx, dword [ecx]
push 1
call dword [edx + 4]
test edi, edi
je 0x422097
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x40]
cmp eax, ecx
jg 0x422073
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x4220cf
mov eax, edi
mov edi, dword [edi]
mov ebp, dword [eax + 8]
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x4220bd
mov edx, dword [ecx]
push 1
call dword [edx + 4]
test ebp, ebp
je 0x4220cb
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 4]
test edi, edi
jne 0x4220a8
lea ecx, [ebx + 0x20]
call fcn.0043b8a6
mov eax, dword [ebx + 0x40]
test eax, eax
jle 0x422234
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebx
call fcn.00428ba0
test eax, eax
je 0x4221a6
mov edx, dword [esp + 0x10]
and edx, 0xffff
lea ecx, [edx - 0x13a6]
cmp ecx, 8
ja case.0x42210f.5035
jmp dword [ecx*4 + 0x42231c]
mov ecx, 0x17e9
push eax
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.00428b00
jmp 0x422234
mov ecx, 0x17ea
push eax
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.00428b00
jmp 0x422234
mov ecx, 0x17eb
push eax
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.00428b00
jmp 0x422234
mov ecx, 0x17ec
push eax
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.00428b00
jmp 0x422234
mov ecx, 0x17f0
push eax
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.00428b00
jmp 0x422234
mov ecx, 0x17ee
push eax
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.00428b00
jmp 0x422234
xor ecx, ecx
push eax
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.00428b00
jmp 0x422234
lea ecx, [esp + 0x18]
call fcn.0043b30c
mov eax, dword [ebx + 8]
mov byte [esp + 0x64], 3
test eax, eax
mov dword [esp + 0x30], eax
je 0x4221f3
lea ebp, [ebx + 4]
lea eax, [esp + 0x30]
mov ecx, ebp
push eax
call fcn.00422340
mov edi, dword [eax]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4221de
mov edx, dword [ecx]
push 1
call dword [edx + 4]
test edi, edi
je 0x4221eb
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x4221c2
lea ecx, [ebx + 4]
call fcn.0043b8a6
mov ecx, ebx
call fcn.0041be60
mov ecx, dword [ebx + 0x40]
lea edx, [esp + 0x18]
push ecx
push 0x177a
push edx
call fcn.0043ba8c
mov eax, dword [esp + 0x24]
add esp, 0xc
push 0
push 0x30
push eax
call fcn.0043b2f4
lea ecx, [esp + 0x18]
mov byte [esp + 0x64], 2
call fcn.0043b2fa
mov ecx, dword [esp + 0x14]
push 1
mov edx, dword [ecx]
call dword [edx + 0x64]
mov ebp, dword [esp + 0x48]
lea eax, [esp + 0x44]
neg eax
sbb eax, eax
and eax, ebp
push eax
call dword [fcn.0043f328]
mov eax, dword [esi + 0x20]
push 1
push 0
push eax
call dword [fcn.0043fc4c]
mov dword [esp + 0x44], 0x4404b8
lea ecx, [esp + 0x44]
mov dword [esp + 0x64], 4
call fcn.0043b61e
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x44], 0x4404a4
mov ecx, dword [esp + 0x40]
call fcn.0042fee0
mov eax, dword [esp + 0x70]
pop ebp
cmp eax, 1
pop ebx
je 0x4222be
test eax, eax
jne 0x4222d1
mov eax, dword [esp + 0x30]
cmp ax, 0x13aa
je 0x4222d1
cmp ax, 0x13ab
je 0x4222d1
xor ecx, ecx
mov cl, byte [esp + 0x15]
test cl, 0x80
jne 0x4222d1
mov edx, dword [esi + 0x20]
push 0
push 0x96
push 1
push edx
call dword [fcn.0043fcd0]
mov ecx, dword [esp + 0x54]
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x58
ret 0x10