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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov dword [ebp - 0x2c], 0xffffffff
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 1
jne 0x43d49f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov esi, dword [eax + 0xc]
dec esi
cmp esi, 0
jl 0x43d495
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
mov ebx, dword [eax + esi*4]
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
dec esi
cmp esi, 0xffffffff
jne 0x43d477
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx]
push 0
push 0
push 0
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
mov bl, 1
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x4c]
mov byte [ebp - 0x2d], al
dec al
je 0x43d4cf
sub al, 2
je 0x43d558
jmp 0x43d561
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0xffffffff
jne 0x43d4df
xor ebx, ebx
jmp 0x43f5ef
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x48]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
call fcn.00402a9c
cmp eax, 0x43173c
jne 0x43d526
mov dl, 7
mov eax, dword [ebp - 4]
call fcn.0043516c
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 1
jmp 0x43f5ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x60], 0xffffffff
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x43d568
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
jmp 0x43d568
xor ebx, ebx
jmp 0x43f5ef
mov eax, dword [ebp - 4]
push eax
mov eax, dword [eax]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.0043d42c
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
jmp 0x43f57b
cmp dword [ebp - 0x34], 0
je 0x43d597
mov eax, dword [ebp - 4]
call dword [ebp - 0x34]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x43d5b4
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 4]
inc dword [edx + 0x5c]
cmp eax, 0xe
jg 0x43d61d
je 0x43f03e
cmp eax, 0xd
ja case.default.0x43d634
jmp dword [eax*4 + 0x43d5e5]
cmp eax, 0x15
jg 0x43d653
je 0x43e63e
add eax, 0xfffffff1
cmp eax, 5
ja case.default.0x43d634
jmp dword [eax*4 + 0x43d63b]
cmp eax, 0x19
jg 0x43d67a
je 0x43e09d
sub eax, 0x16
je 0x43ed40
dec eax
je 0x43ef8d
dec eax
je 0x43eedc
jmp case.default.0x43d634
sub eax, 0x1a
je 0x43e0ea
sub eax, 0xe5
je 0x43f57b
jmp case.default.0x43d634
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43d74b
mov eax, dword [ebp - 0xc]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43d6ca
sub al, 2
je 0x43d6ca
sub al, 6
je 0x43d6ca
sub al, 4
jne 0x43d6d5
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43d70e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43d73c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
lea edx, [ebp - 0x1c]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.00436548
test al, al
jne 0x43d82d
cmp byte [ebp - 0x14], 0
je 0x43f588
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43d7a0
sub al, 2
je 0x43d7a0
sub al, 6
je 0x43d7a0
sub al, 4
jne 0x43d7ab
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
sub esi, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43d7f6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
jmp 0x43f588
cmp byte [ebp - 0x14], 0
je 0x43f57b
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43d84f
sub al, 2
je 0x43d84f
sub al, 6
je 0x43d84f
sub al, 4
jne 0x43d85a
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43d893
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x43d8e7
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
xor ebx, ebx
mov bl, byte [eax + edx]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43d9b6
mov eax, dword [ebp - 0xc]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43d935
sub al, 2
je 0x43d935
sub al, 6
je 0x43d935
sub al, 4
jne 0x43d940
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43d979
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43d9a7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
lea edx, [ebp - 0x1c]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.00438ddc
test al, al
jne 0x43da99
cmp byte [ebp - 0x14], 0
je 0x43f588
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43da0c
sub al, 2
je 0x43da0c
sub al, 6
je 0x43da0c
sub al, 4
jne 0x43da17
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
sub esi, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43da62
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
jmp 0x43f588
cmp byte [ebp - 0x14], 0
je 0x43f57b
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43dabb
sub al, 2
je 0x43dabb
sub al, 6
je 0x43dabb
sub al, 4
jne 0x43dac6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43daff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
jmp 0x43f57b
lea edx, [ebp - 0x1c]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446760
mov esi, eax
mov eax, esi
add eax, 4
mov dword [ebp - 0x10], eax
mov eax, dword [esi]
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 0
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.00436548
test al, al
jne 0x43dc39
cmp byte [ebp - 0x14], 0
je 0x43f588
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43dbac
sub al, 2
je 0x43dbac
sub al, 6
je 0x43dbac
sub al, 4
jne 0x43dbb7
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
sub esi, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43dc02
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
jmp 0x43f588
cmp byte [ebp - 0x14], 0
je 0x43f57b
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43dc5b
sub al, 2
je 0x43dc5b
sub al, 6
je 0x43dc5b
sub al, 4
jne 0x43dc66
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43dc9f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
jmp 0x43f57b
lea edx, [ebp - 0x1c]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 0x14], 0
je 0x43dd0b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov dl, 0xd
mov eax, dword [ebp - 4]
call fcn.0043d060
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446760
mov esi, eax
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xc], 0xd
jne 0x43dd4a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 4
mov eax, dword [eax]
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x43f57b
mov eax, dword [ebp - 0x1c]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
cmp dword [eax + 0xc], 0
jne 0x43dd7b
mov dl, 0xb
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov esi, dword [eax + edx*4 - 4]
test esi, esi
je 0x43dd97
mov eax, dword [esi]
cmp byte [eax + 0xc], 0
jne 0x43dda6
mov dl, 0xb
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
cmp dword [eax + 0x10], 0x200
jle 0x43ddd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, esi
sub edx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov dword [eax + 0x1c], edx
mov eax, dword [esi]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43ddfd
sub al, 2
je 0x43ddfd
sub al, 6
je 0x43ddfd
sub al, 4
jne 0x43de09
mov edx, dword [esi]
mov eax, esi
add eax, 4
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax + 0x18]
sub edx, dword [eax + 0x1c]
shr edx, 0xc
cmp edx, 2
jle 0x43f57b
call fcn.0044652c
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jl 0x43de4b
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
add eax, edx
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp esi, dword [eax + 0xc]
jb 0x43de7c
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
mov ebx, dword [eax + esi*4]
mov eax, ebx
call fcn.00402a9c
cmp eax, 0x43173c
jne 0x43e01d
xor eax, eax
push ebp
push 0x43deee
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3c]
mov edx, ebx
mov eax, dword [ebp - 4]
call dword [ebx + 0x14]
test al, al
jne 0x43dee1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
jne 0x43ded4
mov dl, 0x11
mov eax, dword [ebp - 4]
call fcn.0043516c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x43f588
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446760
mov esi, eax
mov eax, esi
add eax, 4
mov dword [ebp - 0x10], eax
mov eax, dword [esi]
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov dword [esi + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x50], ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446700
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jl 0x43e0c8
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
add eax, edx
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446700
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446700
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jl 0x43e120
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
add eax, edx
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jl 0x43e162
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
add eax, edx
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jl 0x43e1a4
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
add eax, edx
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov bl, 1
lea edx, [ebp - 0x1c]
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x43e1de.0
jmp dword [eax*4 + 0x43e1e5]
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0
setne bl
jmp 0x43e269
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0
setne bl
jmp 0x43e269
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
setne bl
jmp 0x43e269
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
setne bl
jmp 0x43e269
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
setne bl
jmp 0x43e269
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
setne bl
jmp 0x43e269
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0043516c
cmp byte [ebp - 0x14], 0
je 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
jmp 0x43f588
cmp byte [ebp - 0x14], 0
je 0x43e27a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
test bl, bl
je 0x43f57b
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jl 0x43e2ad
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
add eax, edx
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov bl, 1
lea edx, [ebp - 0x1c]
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x43e2e7.0
jmp dword [eax*4 + 0x43e2ee]
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0
sete bl
jmp 0x43e372
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0
sete bl
jmp 0x43e372
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
sete bl
jmp 0x43e372
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
sete bl
jmp 0x43e372
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
sete bl
jmp 0x43e372
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
sete bl
jmp 0x43e372
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0043516c
cmp byte [ebp - 0x14], 0
je 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
jmp 0x43f588
cmp byte [ebp - 0x14], 0
je 0x43e383
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
test bl, bl
je 0x43f57b
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
dec eax
mov dword [ebp - 0x2c], eax
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
jle 0x43e4b5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
jmp 0x43e492
cmp dword [ebx + 0x10], 0xfffffffe
jne 0x43e3e9
push 0
push 0
push 0
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, dword [ebp - 4]
mov edi, dword [eax]
call dword [edi + 8]
jmp 0x43e417
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebx + 8]
jbe 0x43e417
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edi, dword [ebx + 8]
sub edi, eax
ja 0x43e417
dec edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446700
inc edi
jne 0x43e409
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebx + 0xc]
cmp eax, 0xffffffff
je 0x43e43c
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0xc], 0xffffffff
mov esi, 1
jmp 0x43e4b5
cmp dword [ebx + 0x14], 0xffffffff
je 0x43e459
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xffffffff
mov esi, 1
jmp 0x43e4b5
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0043144c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
je 0x43e4b5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 4]
cmp edx, dword [ecx + 0x60]
je 0x43e3cd
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60]
jbe 0x43e4b5
cmp eax, 0xffffffff
jne 0x43e3cd
test esi, esi
jne 0x43f57b
mov dword [ebp - 0x2c], 0xffffffff
mov eax, dword [ebp - 4]
cmp dword [eax + 0x60], 0xffffffff
jne 0x43e4db
mov al, byte [ebp - 0x2d]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + 0xc]
dec esi
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x60]
inc edi
sub edi, esi
jg 0x43e4ff
dec edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446700
inc edi
jne 0x43e4f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60]
ja 0x43e51e
mov al, byte [ebp - 0x2d]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [esi + 4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov eax, dword [esi + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446700
mov eax, dword [ebp - 4]
cmp dword [eax + 0x50], 0
jne 0x43e56d
mov al, byte [ebp - 0x2d]
mov edx, dword [ebp - 4]
mov byte [edx + 0x4c], al
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jl 0x43e5b0
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
add eax, edx
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
cmp esi, dword [eax + 0xc]
jbe 0x43e5e1
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 4]
mov edx, dword [eax + esi*4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446760
jmp 0x43f57b
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43e623
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.0043caf4
test al, al
je 0x43f588
jmp 0x43f57b
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43e664
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.0043d344
test al, al
je 0x43f588
jmp 0x43f57b
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43e6a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.0043c9c0
test al, al
je 0x43f588
jmp 0x43f57b
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x43e707
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
cmp byte [ebp - 8], 0
je 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
movzx esi, byte [eax + edx]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x43e72d.0
jmp dword [eax*4 + 0x43e734]
mov eax, dword [ebp - 0x10]
cmp byte [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x43e7dc
mov eax, dword [ebp - 0x10]
cmp byte [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x43e7dc
mov eax, dword [ebp - 0x10]
cmp word [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x43e7dc
mov eax, dword [ebp - 0x10]
cmp word [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x43e7dc
mov eax, dword [ebp - 0x10]
cmp dword [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x43e7dc
mov eax, dword [ebp - 0x10]
cmp dword [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x43e7dc
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0043516c
cmp byte [ebp - 8], 0
je 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
jmp 0x43f588
test esi, esi
je 0x43e7ee
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x10]
xor al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
cmp byte [ebp - 8], 0
je 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jl 0x43e828
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
add eax, edx
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10], 0
je 0x43f57b
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, 0x1c
call fcn.00402648
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov dword [ebx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
mov dword [ebx + 8], eax
lea edx, [ebx + 0xc]
mov eax, dword [ebp - 4]
call fcn.0043cc6c
test al, al
jne 0x43e8aa
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
jmp 0x43f588
lea edx, [ebx + 0x10]
mov eax, dword [ebp - 4]
call fcn.0043cc6c
test al, al
jne 0x43e8d4
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
jmp 0x43f588
lea edx, [ebx + 0x14]
mov eax, dword [ebp - 4]
call fcn.0043cc6c
test al, al
jne 0x43e8fe
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
jmp 0x43f588
lea edx, [ebx + 0x18]
mov eax, dword [ebp - 4]
call fcn.0043cc6c
test al, al
jne 0x43e928
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
jmp 0x43f588
cmp dword [ebx + 0xc], 0xffffffff
je 0x43e937
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0xc], eax
cmp dword [ebx + 0x10], 0xffffffff
je 0x43e946
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x10], eax
cmp dword [ebx + 0x14], 0xffffffff
je 0x43e955
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x14], eax
cmp dword [ebx + 0x18], 0xffffffff
je 0x43e964
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x18], eax
cmp dword [ebx + 0xc], 0xffffffff
je 0x43e975
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x43e9a8
cmp dword [ebx + 0x10], 0xffffffff
je 0x43e986
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x43e9a8
cmp dword [ebx + 0x14], 0xffffffff
je 0x43e997
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x43e9a8
cmp dword [ebx + 0x18], 0xffffffff
je 0x43e9c3
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x43e9c3
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
jmp 0x43f588
mov edx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00431404
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x43e9f2
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
movzx esi, byte [eax + edx]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
sub esi, 1
jb 0x43ead9
je 0x43ebb3
dec esi
je 0x43ea26
dec esi
je 0x43ec9c
jmp 0x43f57b
push 0
push 0
push 0
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
jne 0x43ea55
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x43ea7e
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov dword [ebx + 0x10], 0xffffffff
cmp dword [ebx + 0x14], 0xffffffff
je 0x43eaa0
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xffffffff
jmp 0x43f57b
mov esi, dword [ebx + 0x18]
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0043144c
cmp dword [ebp - 0x2c], 0xffffffff
je 0x43eace
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x43eb02
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
cmp dword [ebx + 0xc], 0xffffffff
je 0x43eb1d
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0xc], 0xffffffff
jmp 0x43f57b
cmp dword [ebx + 0x14], 0xffffffff
je 0x43eb38
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x10], 0xffffffff
jmp 0x43f57b
mov esi, dword [ebx + 0x18]
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0043144c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x43eb94
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x70]
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
push esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x43f57b
cmp dword [ebp - 0x2c], 0xffffffff
je 0x43eba8
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x43ebdc
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x43ec06
cmp dword [ebx + 0x10], 0xffffffff
je 0x43ec06
cmp dword [ebx + 0x10], 0xfffffffe
je 0x43ec06
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x10], 0xfffffffe
jmp 0x43f57b
cmp dword [ebx + 0x14], 0xffffffff
je 0x43ec21
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xffffffff
jmp 0x43f57b
mov esi, dword [ebx + 0x18]
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0043144c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x43ec7d
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x70]
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
push esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x43f57b
cmp dword [ebp - 0x2c], 0xffffffff
je 0x43ec91
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], esi
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x43ecc5
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov esi, dword [ebx + 0x18]
mov edx, 0x1c
mov eax, ebx
call fcn.00402660
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0043144c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x43ed21
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x70]
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
push esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x43f57b
cmp dword [ebp - 0x2c], 0xffffffff
je 0x43ed35
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], esi
jmp 0x43f57b
lea edx, [ebp - 0x10]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43ed75
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0xc], 0xd
je 0x43ed8d
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
lea edx, [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
mov eax, dword [ebp - 0x10]
add eax, 8
cmp dword [eax], 0
je 0x43edbf
mov eax, dword [ebp - 0x10]
add eax, 4
mov edx, dword [eax]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
call fcn.00433498
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xc], 0xd
jne 0x43ee64
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
je 0x43ee47
mov eax, dword [ebp - 0x1c]
add eax, 4
mov eax, dword [eax]
call fcn.0043347c
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x1c]
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
add eax, 8
mov dword [eax], 1
mov eax, dword [ebp - 0x10]
add eax, 4
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov ecx, 1
call fcn.00435d4c
test al, al
jne 0x43eec2
cmp byte [ebp - 0x14], 0
je 0x43ee38
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x10]
add eax, 4
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x10]
add eax, 8
xor edx, edx
mov dword [eax], edx
jmp 0x43eec2
mov eax, dword [ebp - 0x18]
call fcn.0043347c
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
add eax, 4
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
mov eax, dword [ebp - 0x10]
add eax, 8
mov dword [eax], 1
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov ecx, 1
mov edx, dword [ebp - 0x1c]
call fcn.00435d4c
test al, al
jne 0x43eec2
cmp byte [ebp - 0x14], 0
je 0x43eeb3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
cmp byte [ebp - 0x14], 0
je 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
jmp 0x43f57b
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43ef11
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x43ef1d.0
jmp dword [eax*4 + 0x43ef24]
mov eax, dword [ebp - 0x10]
dec byte [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
dec byte [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
dec word [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
dec word [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
dec dword [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
dec dword [eax]
jmp 0x43f57b
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43efc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x43efce.0
jmp dword [eax*4 + 0x43efd5]
mov eax, dword [ebp - 0x10]
inc byte [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
inc byte [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
inc word [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
inc word [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
inc dword [eax]
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
inc dword [eax]
jmp 0x43f57b
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
lea edx, [ebp - 0x10]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 8], 0
je 0x43f073
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0xc], 0xd
je 0x43f08b
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
lea edx, [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 0x14], 0
je 0x43f0c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xc], 0xd
jne 0x43f0e8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x1c]
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [edx], eax
jmp 0x43f57b
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov eax, dword [ebp - 0x10]
add eax, 4
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
jmp 0x43f57b
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0xc], 0x15
je 0x43f13e
cmp byte [ebp - 8], 0
je 0x43f12f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 0x10]
mov esi, dword [eax]
cmp byte [ebp - 8], 0
je 0x43f154
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00446700
test esi, esi
jne 0x43f18c
mov eax, dword [ebp - 0x10]
add eax, 8
cmp dword [eax], 0
je 0x43f18c
mov eax, dword [ebp - 0x10]
add eax, 8
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x10]
add eax, 4
mov ecx, dword [eax]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00445160
test al, al
je 0x43f588
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp esi, dword [eax + 0xc]
jae 0x43f19f
mov eax, dword [ebp - 4]
cmp esi, dword [eax + 0x48]
jne 0x43f1ae
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
mov ebx, dword [eax + esi*4]
mov eax, ebx
call fcn.00402a9c
cmp eax, 0x43173c
jne 0x43f1f4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3c]
mov edx, ebx
mov eax, dword [ebp - 4]
call dword [ebx + 0x14]
test al, al
jne 0x43f57b
mov dl, 0x11
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446760
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov dword [esi + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x50], ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x43f280
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5c]
xor ebx, ebx
mov bl, byte [eax + edx]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
lea edx, [ebp - 0x28]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
cmp byte [ebp - 0x20], 0
je 0x43f34f
mov eax, dword [ebp - 0x24]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43f2ce
sub al, 2
je 0x43f2ce
sub al, 6
je 0x43f2ce
sub al, 4
jne 0x43f2d9
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43f312
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f340
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.0043516c
jmp 0x43f588
lea edx, [ebp - 0x1c]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
je 0x43f588
lea edx, [ebp - 0x10]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0043c034
test al, al
jne 0x43f428
cmp byte [ebp - 0x14], 0
je 0x43f588
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43f39b
sub al, 2
je 0x43f39b
sub al, 6
je 0x43f39b
sub al, 4
jne 0x43f3a6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
sub esi, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43f3f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
jmp 0x43f588
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x24]
push eax
push ebx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.004371c0
cmp byte [ebp - 8], 0
je 0x43f4db
mov eax, dword [ebp - 0xc]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43f469
sub al, 2
je 0x43f469
sub al, 6
je 0x43f469
sub al, 4
jne 0x43f474
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43f4ad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f4db
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
cmp byte [ebp - 0x14], 0
je 0x43f57b
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x43f4fd
sub al, 2
je 0x43f4fd
sub al, 6
je 0x43f4fd
sub al, 4
jne 0x43f508
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0043327c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jle 0x43f541
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.004313a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x43f57b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0044652c
jmp 0x43f57b
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.0043516c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 2
je 0x43d58b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
je 0x43f5a1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 2
je 0x43d57f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 1
jne 0x43f5e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + 0xc]
dec esi
cmp esi, 0
jl 0x43f5ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00446700
dec esi
cmp esi, 0xffffffff
jne 0x43f5b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax]
call dword [edx]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x11], 0
je 0x43f5e5
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x14]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
sete bl
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret