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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
xor eax, eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [edi]
mov dword [esp + 0x64], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x90], ecx
cmp dword [edi + 0x40], eax
jne 0x4ad3d7
cmp byte [ecx + 0x40], al
jne 0x4ad3d7
mov ecx, dword [ebp + 0xc]
mov esi, edi
call fcn.0045e2ea
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x4ad3d7
mov esi, dword [ebx + 0x44]
mov ecx, dword [edi]
call fcn.0042cb6a
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x9c]
push eax
push ecx
push 0x6e
mov edx, ebx
mov eax, edi
call fcn.004409ca
xor edx, edx
add esp, 0xc
cmp dword [ebx + 0xc], edx
mov dword [esp + 0x88], eax
setne dl
mov eax, ebx
mov ecx, edi
mov dword [esp + 0x48], edx
call fcn.0047685a
test eax, eax
jne 0x4ad3d7
mov eax, dword [esp + 0x9c]
push eax
mov ecx, ebx
call fcn.00452d0a
add esp, 4
test eax, eax
jne 0x4ad3d7
mov eax, dword [edi + 0x44]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x38], eax
mov edx, 1
add dword [edi + 0x44], edx
mov esi, dword [edi + 0x44]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
inc eax
test byte [ebx + 0x2c], 0x20
mov dword [esp + 0x84], eax
jne 0x4aafb2
mov dword [esp + 0x44], 0
jmp 0x4aafbd
mov eax, ebx
call fcn.0042cf7a
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
xor ebx, ebx
test eax, eax
je 0x4aaff5
mov ecx, dword [eax + 0x38]
and cl, 3
cmp cl, 2
jne 0x4aafe6
cmp dword [esp + 0x44], 0
je 0x4aafe6
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x24], esi
mov dword [ecx + 0x38], esi
add dword [edi + 0x44], edx
mov eax, dword [eax + 0x14]
mov esi, dword [edi + 0x44]
add ebx, edx
test eax, eax
jne 0x4aafca
mov edx, dword [esp + 0x10]
movsx eax, word [edx + 0x26]
mov esi, dword [esp + 0x90]
add eax, ebx
lea ecx, [ebx + eax*4 + 2]
call fcn.00444b5a
mov dword [esp + 0x54], eax
test eax, eax
je 0x4ad3d7
mov esi, dword [esp + 0x10]
movsx ecx, word [esi + 0x26]
mov edx, eax
lea eax, [edx + ecx*4]
lea edi, [eax + ebx*4]
mov dword [esp + 0x70], eax
lea eax, [ebx + 1]
push eax
push 1
push edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x20], eax
call fcn.004ce72a
xor ecx, ecx
add esp, 0xc
mov byte [edi + ebx + 1], 0
xor eax, eax
cmp cx, word [esi + 0x26]
jge 0x4ab06e
mov edi, edi
mov edx, dword [esp + 0x54]
mov dword [edx + eax*4], 0xffffffff
movsx ecx, word [esi + 0x26]
inc eax
cmp eax, ecx
jl 0x4ab05a
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], edi
mov byte [esp + 0x2b], al
mov byte [esp + 0x23], al
mov dword [esp + 0x38], ecx
cmp dword [edx], ecx
jle 0x4ab351
mov dword [esp + 0x40], ecx
nop
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x40]
mov edi, dword [edx + ecx]
lea esi, [esp + 0xa8]
call fcn.00467b9a
test eax, eax
jne 0x4ad3d7
mov eax, dword [esp + 0x10]
movsx ecx, word [eax + 0x26]
xor edi, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x4ab1d9
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 4]
add ecx, edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x2c], edx
mov esi, eax
jmp 0x4ab13a
mov ecx, dword [esi]
mov al, byte [ecx]
mov edx, dword [esp + 0x2c]
test al, al
je 0x4ab16b
lea esp, [esp]
movzx edi, byte [edx]
movzx eax, al
mov al, byte [eax + 0x100a9cd0]
cmp al, byte [edi + 0x100a9cd0]
jne 0x4ab167
mov al, byte [ecx + 1]
inc ecx
inc edx
test al, al
jne 0x4ab14a
mov edi, dword [esp + 0x18]
movzx ecx, byte [ecx]
movzx eax, byte [ecx + 0x100a9cd0]
movzx ecx, byte [edx]
movzx edx, byte [ecx + 0x100a9cd0]
sub eax, edx
je 0x4ab193
inc edi
add esi, 0x18
mov dword [esp + 0x18], edi
cmp edi, dword [esp + 0x34]
jl 0x4ab13a
jmp 0x4ab1d5
mov eax, dword [esp + 0x10]
movsx ecx, word [eax + 0x24]
cmp edi, ecx
jne 0x4ab1b0
mov edx, dword [esp + 0x5c]
mov eax, dword [edx]
mov byte [esp + 0x23], 1
mov dword [esp + 0x4c], eax
jmp 0x4ab1ca
cmp dword [esp + 0x44], 0
je 0x4ab1ca
mov edx, dword [esp + 0x30]
lea ecx, [edi + edi*2]
test byte [edx + ecx*8 + 0x17], 1
je 0x4ab1ca
mov byte [esp + 0x2b], 1
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov dword [eax + edi*4], ecx
mov eax, dword [esp + 0x10]
movsx edx, word [eax + 0x26]
cmp edi, edx
jl 0x4ab29c
cmp dword [esp + 0x44], 0
jne 0x4ab3b6
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x40]
mov esi, dword [eax + ecx + 4]
add eax, ecx
mov cl, byte [esi]
mov dword [esp + 0x5c], eax
mov eax, esi
mov edx, 0x100af890
test cl, cl
je 0x4ab237
jmp 0x4ab21a
movzx edi, byte [edx]
movzx ecx, cl
mov cl, byte [ecx + 0x100a9cd0]
cmp cl, byte [edi + 0x100a9cd0]
jne 0x4ab237
mov cl, byte [eax + 1]
inc eax
inc edx
test cl, cl
jne 0x4ab21a
movzx edx, byte [edx]
movzx ecx, byte [edx + 0x100a9cd0]
movzx edx, byte [eax]
movzx eax, byte [edx + 0x100a9cd0]
sub eax, ecx
je 0x4ab277
push 0x100af898
push esi
call fcn.00430bea
add esp, 8
test eax, eax
je 0x4ab277
push 0x100af8a0
push esi
call fcn.00430bea
add esp, 8
test eax, eax
jne 0x4ab3b6
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0xffffffff
mov byte [esp + 0x23], 1
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], 0x100af898
jmp 0x4ab2b7
test edi, edi
jns 0x4ab2aa
mov dword [esp + 0x2c], 0x100af898
jmp 0x4ab2b7
mov edx, dword [eax + 4]
lea ecx, [edi + edi*2]
mov ecx, dword [edx + ecx*8]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x90]
mov esi, dword [eax]
mov eax, dword [ebx]
mov ecx, dword [ecx + 0x10]
add edx, edx
cmp byte [eax + 0x89], 0
mov edx, dword [ecx + edx*8]
jne 0x4ab32f
cmp byte [ebx + 0x1c3], 0
jne 0x4ab32f
mov ecx, dword [eax + 0x114]
test ecx, ecx
je 0x4ab32f
mov edi, dword [ebx + 0x1ec]
mov eax, dword [eax + 0x118]
push edi
push edx
mov edx, dword [esp + 0x34]
push edx
push esi
push 0x17
push eax
call ecx
add esp, 0x18
cmp eax, 1
je 0x4ab388
test eax, eax
je 0x4ab31b
cmp eax, 2
jne 0x4ab39f
cmp eax, 2
jne 0x4ab32f
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
mov dword [ecx + edx*4], 0xffffffff
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0x10]
add dword [esp + 0x40], 0x18
inc eax
mov dword [esp + 0x38], eax
cmp eax, dword [ecx]
jl 0x4ab0da
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov al, byte [esp + 0x2b]
add al, byte [esp + 0x23]
mov dword [edi + 0x48], ecx
mov dword [edi + 0x4c], ecx
mov byte [esp + 0x6c], al
mov eax, dword [ebx]
test dword [eax + 0x18], 0x80000
je 0x4ab3df
movzx ecx, byte [esp + 0x6c]
mov edx, dword [esp + 0x54]
push ecx
push edx
push esi
call fcn.00443a2a
add esp, 0xc
mov dword [esp + 0x74], eax
jmp 0x4ab3e3
push 0x100b0208
push ebx
call fcn.0044ea7a
mov dword [ebx + 0xc], 0x17
jmp 0x4ad3d4
push 0x100b01ac
push ebx
call fcn.0044ea7a
mov dword [ebx + 0xc], 1
jmp 0x4ad3d4
mov eax, dword [esp + 0x38]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*8 + 4]
push edx
push 0x100b1724
push ebx
call fcn.0044ea7a
add esp, 0xc
mov byte [ebx + 0x11], 1
jmp 0x4ad3d7
mov dword [esp + 0x74], ecx
mov edx, dword [esi + 8]
mov dword [esp + 0x18], 0
test edx, edx
je 0x4ab47c
mov edi, dword [esp + 0x54]
cmp byte [esp + 0x6c], 0
jne 0x4ab447
cmp dword [esp + 0x74], 0
jne 0x4ab447
cmp dword [edx + 0x24], 0
jne 0x4ab447
cmp edx, dword [esp + 0x44]
je 0x4ab447
movzx esi, word [edx + 0x32]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x2c], ecx
test esi, esi
jle 0x4ab451
mov ecx, dword [edx + 4]
lea ecx, [ecx]
movsx ebx, word [ecx]
cmp dword [edi + ebx*4], 0
jge 0x4ab444
inc eax
add ecx, 2
cmp eax, esi
jl 0x4ab42a
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ebp + 8]
jmp 0x4ab451
mov ebx, dword [ebp + 8]
inc dword [ebx + 0x48]
mov ecx, dword [ebx + 0x48]
test ecx, ecx
jne 0x4ab461
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x18]
mov byte [esi + eax + 1], 0
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
mov dword [esi + eax*4], ecx
mov edx, dword [edx + 0x14]
inc eax
mov dword [esp + 0x18], eax
test edx, edx
jne 0x4ab3fa
mov eax, dword [ebx + 8]
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x4ab543
mov edi, dword [ebx]
mov ecx, 0xd0
mov esi, edi
call fcn.00444b5a
mov esi, eax
test esi, esi
je 0x4ab55f
push 0xd0
push 0
push esi
call fcn.004ce72a
mov dword [esi], edi
mov eax, dword [edi + 4]
add esp, 0xc
test eax, eax
je 0x4ab4bf
mov dword [eax + 0x30], esi
mov ecx, dword [edi + 4]
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], 0
mov dword [edi + 4], esi
mov dword [esi + 0x28], 0x26bceaa5
mov dword [esi + 0x18], ebx
mov dword [ebx + 8], esi
mov dword [esp + 0x3c], esi
test esi, esi
je 0x4ab51f
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x54], edi
jg 0x4ab4fc
push esi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4ab51f
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x9c
cmp dword [ebx + 0x198], 0
jne 0x4ab534
mov edx, dword [ebx]
test byte [edx + 0x3c], 8
jne 0x4ab534
mov byte [ebx + 0x17], 1
test esi, esi
je 0x4ad3d7
mov eax, dword [esp + 0x3c]
mov ebx, dword [ebp + 8]
cmp byte [ebx + 0x12], 0
jne 0x4ab54d
or dword [eax + 0x58], 0x10
mov eax, dword [ebx + 0x198]
test eax, eax
je 0x4ab566
mov edi, eax
mov dword [esp + 0x40], edi
jmp 0x4ab56c
xor esi, esi
jmp 0x4ab4d9
mov edi, ebx
mov dword [esp + 0x40], ebx
test eax, eax
jne 0x4ab572
mov eax, ebx
mov ecx, dword [esp + 0x80]
mov edx, dword [eax + 0x14c]
mov esi, 1
shl esi, cl
test edx, esi
jne 0x4ab5bd
mov edi, esi
or edi, edx
mov edx, dword [eax]
mov dword [eax + 0x14c], edi
mov edx, dword [edx + 0x10]
mov edi, ecx
add edi, edi
mov edx, dword [edx + edi*8 + 0xc]
mov edx, dword [edx]
mov dword [eax + ecx*4 + 0x150], edx
cmp ecx, 1
jne 0x4ab5b9
mov ebx, eax
call fcn.004923da
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
or dword [edi + 0x148], esi
or byte [edi + 0x14], 1
test byte [edx + 0x2c], 0x10
je 0x4ab606
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
push eax
push ebx
call fcn.0049d4ca
add esp, 0x20
xor eax, eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0xc], eax
jmp 0x4ad3d7
mov ecx, 1
add dword [ebx + 0x48], ecx
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x34], eax
inc eax
cmp byte [esp + 0x2b], 0
mov dword [ebx + 0x48], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
jne 0x4ab639
cmp dword [esp + 0x88], 0
jne 0x4ab639
cmp dword [esp + 0x74], 0
je 0x4ab649
lea esi, [eax + 1]
mov dword [esp + 0x60], esi
movsx esi, word [edx + 0x26]
add esi, eax
mov dword [ebx + 0x48], esi
cmp byte [esp + 0x6c], 0
jne 0x4ab661
cmp dword [esp + 0x88], 0
jne 0x4ab661
cmp dword [esp + 0x74], 0
je 0x4ab66b
add dword [ebx + 0x48], ecx
mov ecx, dword [ebx + 0x48]
mov dword [esp + 0x5c], ecx
movsx edx, word [edx + 0x26]
mov eax, dword [ebx + 0x48]
add edx, eax
cmp dword [esp + 0x48], 0
lea ecx, [eax + 1]
mov dword [esp + 0x80], ecx
mov dword [ebx + 0x48], edx
je 0x4ab6bb
mov eax, dword [ebx + 0x1ec]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push edx
mov dword [ebx + 0x1ec], ecx
mov ecx, dword [ebp + 0x14]
push ecx
push eax
push ebx
mov dword [esp + 0xb4], ebx
call fcn.0049980a
add esp, 0x10
mov edi, dword [ebp + 0x14]
lea esi, [esp + 0xa8]
call fcn.00467b9a
test eax, eax
jne 0x4ad3d7
mov edx, dword [esp + 0x10]
test byte [edx + 0x2c], 0x20
jne 0x4ab7d4
mov edi, dword [esp + 0x3c]
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4ab6fc
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4ab727
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov dword [eax + 8], edx
mov edx, dword [esp + 0x58]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
mov word [eax], 0x1c
mov eax, dword [esp + 0x84]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push 4
push 0
push 0
push ecx
push edx
push eax
call fcn.00495cba
mov ebx, eax
add esp, 0x1c
test ebx, ebx
je 0x4ad3d7
mov ecx, dword [ebx + 0x3c]
movzx eax, byte [ebx + 0x26]
mov esi, dword [edi + 0x20]
mov edx, dword [ebx + 0x40]
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x40], eax
cmp dword [ecx + 0x54], esi
jg 0x4ab781
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4ab7ac
mov eax, dword [edi + 4]
inc dword [edi + 0x20]
mov ecx, dword [esp + 0x24]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x58]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x65
cmp dword [esp + 0x40], 0
jne 0x4ab7c9
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x34]
push eax
push ecx
push 0x7e
mov esi, edi
call fcn.00454e8a
add esp, 0xc
push ebx
call fcn.0045625a
jmp 0x4aba46
mov edx, dword [esp + 0x44]
movzx ecx, word [edx + 0x32]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x48]
mov ebx, dword [esp + 0x3c]
lea edx, [eax + 1]
movsx ecx, cx
lea eax, [ecx + eax + 1]
mov dword [esi + 0x48], eax
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x94], eax
inc eax
mov dword [esi + 0x44], eax
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x54], edi
jg 0x4ab825
push ebx
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4ab84e
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x1c
jmp 0x4ab850
xor ecx, ecx
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x54], edi
jg 0x4ab874
push ebx
call fcn.0044aaba
add esp, 4
test eax, eax
je 0x4ab872
mov dword [esp + 0x30], 1
jmp 0x4ab8a4
xor ecx, ecx
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x94]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x38]
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x38
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x44]
mov eax, esi
call fcn.0047132a
mov eax, dword [esp + 0x84]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
push eax
push 4
push 0
push 0
push ecx
push edx
push esi
call fcn.00495cba
add esp, 0x1c
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4ad3d7
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x40]
movzx eax, byte [eax + 0x26]
mov esi, dword [esp + 0x38]
xor edi, edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x40], eax
test esi, esi
jle 0x4ab926
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x24]
add ecx, edi
push ecx
movsx ecx, word [eax + edi*2]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
mov eax, ebx
call fcn.0047a36a
inc edi
add esp, 0x10
cmp edi, esi
jl 0x4ab8fa
cmp dword [esp + 0x40], 0
je 0x4ab985
mov ecx, dword [esp + 0x30]
cmp ecx, dword [ebx + 0x20]
jge 0x4ab974
mov edi, dword [ebx]
mov eax, ecx
lea edx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx eax, byte [esi + 1]
call fcn.0044e00a
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov byte [esi], 0x9d
mov eax, dword [ebx + 0x20]
mov esi, dword [esp + 0x38]
dec eax
cmp dword [esp + 0x30], eax
jne 0x4ab974
mov dword [ebx + 0x20], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], esi
mov dword [esp + 0x68], ecx
jmp 0x4aba38
mov esi, dword [esp + 0x44]
mov eax, ebx
call fcn.00446f3a
mov esi, dword [ebx + 0x20]
mov edx, dword [ebx + 0x18]
mov edi, eax
cmp dword [edx + 0x54], esi
jg 0x4ab9b1
push ebx
call fcn.0044aaba
add esp, 4
test eax, eax
je 0x4ab9b1
mov eax, 1
jmp 0x4ab9e4
mov ecx, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
mov word [eax], 0x30
mov eax, esi
mov ecx, dword [esp + 0x38]
push edi
push ebx
call fcn.00454afa
mov esi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
add esp, 8
cmp dword [eax + 0x54], esi
jg 0x4aba0a
push ebx
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4aba38
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x68]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x6c
mov eax, dword [esp + 0x2c]
push eax
call fcn.0045625a
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x94]
add esp, 4
test byte [ecx + 0x18], 0x80
je 0x4abab8
mov edx, dword [ebp + 8]
cmp dword [edx + 0x19c], 0
jne 0x4abab8
mov eax, edx
mov ebx, 1
add dword [eax + 0x48], ebx
mov esi, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x98], eax
cmp dword [ecx + 0x54], esi
jg 0x4aba8e
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4abab8
mov eax, dword [edi + 4]
add dword [edi + 0x20], ebx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x98]
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x19
mov esi, dword [edi + 0x18]
mov ecx, dword [esi + 0x6c]
lea edx, [ecx - 1]
lea eax, [ecx + 1]
mov dword [esp + 0x30], ecx
mov dword [esi + 0x6c], eax
test ecx, edx
jne 0x4abb02
mov eax, dword [esi]
mov ebx, dword [esi + 0x70]
lea ecx, [ecx*8 + 4]
mov dword [esp + 0x2c], eax
call fcn.00448e2a
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4abafb
mov ecx, dword [esp + 0x2c]
mov eax, ebx
call fcn.0043e91a
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x70], eax
mov esi, dword [esi + 0x70]
test esi, esi
je 0x4abb10
mov dword [esi + ecx*4], 0xffffffff
or ebx, 0xffffffff
sub ebx, ecx
cmp dword [esp + 0x48], 0
mov dword [esp + 0x2c], ebx
jne 0x4abbab
mov ecx, 5
cmp dword [ebp + 0x18], ecx
jne 0x4abb47
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x8c]
push eax
push 1
push esi
call fcn.004ce72a
add esp, 0xc
jmp 0x4abb65
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x4abb5e
cmp byte [eax + 0x36], cl
je 0x4abb2e
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4abb52
mov esi, dword [esp + 0x8c]
cmp dword [esp + 0x40], 0
je 0x4abb8c
mov eax, dword [esp + 0x78]
test eax, eax
js 0x4abb7c
sub eax, dword [esp + 0x1c]
mov byte [eax + esi], 0
mov eax, dword [esp + 0x7c]
test eax, eax
js 0x4abb8c
sub eax, dword [esp + 0x1c]
mov byte [eax + esi], 0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
push 0
push 0
push esi
push ecx
push 0x36
push edx
push eax
call fcn.004759da
add esp, 0x1c
jmp 0x4abbb2
mov esi, dword [esp + 0x8c]
cmp dword [esp + 0x40], 0
je 0x4abc33
sub esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
cmp byte [esi + eax], 0
je 0x4abbdf
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
push ecx
push edx
push ebx
push eax
push 0x42
mov eax, edi
call fcn.00454c7a
add esp, 0x14
cmp dword [esp + 0x44], 0
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x68]
jne 0x4abbf2
mov ebx, dword [esp + 0x58]
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4abc0e
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4abdf4
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
xor ecx, ecx
mov dword [eax + 4], ebx
mov dword [eax + 0x10], ecx
mov word [eax], 0x4c
jmp 0x4abded
cmp dword [esp + 0x44], 0
je 0x4abd58
mov esi, dword [edi + 0x18]
mov eax, dword [esi + 0x6c]
lea ecx, [eax - 1]
lea edx, [eax + 1]
mov dword [esp + 0x14], eax
mov dword [esi + 0x6c], edx
test eax, ecx
jne 0x4abc8c
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esi + 0x70]
lea ecx, [ecx*8 + 4]
mov dword [esp + 0x64], eax
call fcn.00448e2a
mov dword [esp + 0x34], eax
test eax, eax
jne 0x4abc85
mov ecx, dword [esp + 0x64]
mov eax, ebx
call fcn.0043e91a
mov eax, dword [esp + 0x34]
mov dword [esi + 0x70], eax
mov eax, dword [esp + 0x14]
mov esi, dword [esi + 0x70]
test esi, esi
je 0x4abc9a
mov dword [esi + eax*4], 0xffffffff
mov esi, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
or ebx, 0xffffffff
sub ebx, eax
mov dword [esp + 0x18], ebx
cmp dword [edx + 0x54], esi
jg 0x4abcbb
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4abce9
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x94]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x6a
mov esi, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
cmp dword [edx + 0x54], esi
jg 0x4abd08
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
je 0x4abd08
mov esi, 1
jmp 0x4abd36
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x94]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x68]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x63
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
push 0
push edx
push ebx
push eax
push 0x42
mov eax, edi
mov dword [esp + 0x78], esi
call fcn.00454c7a
add esp, 0x14
jmp 0x4abdf4
mov esi, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0x54], esi
jg 0x4abd7a
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
je 0x4abd7a
mov dword [esp + 0x18], 1
jmp 0x4abdab
mov eax, dword [edi + 4]
inc dword [edi + 0x20]
mov ecx, dword [esp + 0x34]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x58]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
mov word [eax], 0x7f
mov dword [esp + 0x18], esi
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4abdc3
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4abdf4
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], edx
mov dword [eax + 0x10], 0
mov word [eax], 0x44
mov dword [eax + 0xc], ecx
mov byte [eax + 3], 0
cmp byte [esp + 0x23], 0
je 0x4abf0e
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4abe62
cmp byte [eax], 0x9f
jne 0x4abe62
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
mov ebx, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x14], edx
cmp dword [ecx + 0x54], ebx
jg 0x4abe35
push esi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4abecf
mov eax, dword [esi + 4]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x14]
lea edx, [ebx + ebx*4]
mov ebx, dword [esp + 0x5c]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x21
jmp 0x4abed3
mov ebx, dword [esp + 0x5c]
mov edx, dword [ebp + 8]
push ebx
push eax
push edx
call fcn.004a6c6a
add esp, 0xc
mov dword [esp + 0x34], eax
cmp eax, ebx
je 0x4abed3
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
test esi, esi
je 0x4abed3
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x14], eax
cmp dword [ecx + 0x54], eax
jg 0x4abea6
push esi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4abed3
mov eax, dword [esp + 0x14]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x34]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x22
jmp 0x4abed3
mov ebx, dword [esp + 0x5c]
mov esi, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
cmp dword [edx + 0x54], esi
jg 0x4abeeb
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4abf0e
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x26
cmp byte [esp + 0x2b], 0
jne 0x4abfee
cmp dword [esp + 0x74], 0
jne 0x4abff9
cmp dword [esp + 0x88], 0
je 0x4ac0f6
mov ebx, dword [esp + 0x10]
xor esi, esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x8c]
push ebx
push 3
push 0
push ecx
push edx
call fcn.004408da
or esi, eax
mov dword [esp + 0x2c], esi
xor eax, eax
add esp, 0x18
xor esi, esi
cmp ax, word [ebx + 0x26]
jge 0x4ac044
mov dword [esp + 0x34], eax
jmp 0x4abf7a
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x4ac011
cmp esi, 0x20
jge 0x4abf99
mov edx, 1
mov ecx, esi
shl edx, cl
test eax, edx
jne 0x4ac011
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x34]
test byte [ecx + edx + 0x17], 1
jne 0x4ac011
mov ebx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], ebx
jg 0x4abfc3
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4ac02e
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x60]
xor ecx, ecx
add edx, esi
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x1c
jmp 0x4ac02e
cmp dword [esp + 0x74], 0
je 0x4abf32
mov ebx, dword [esp + 0x10]
mov edx, dword [ebp + 8]
push ebx
push edx
call fcn.0045859a
add esp, 8
mov esi, eax
jmp 0x4abf38
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x24]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x10]
push ecx
push esi
push edx
push eax
mov eax, edi
call fcn.0047a36a
add esp, 0x10
mov ecx, dword [esp + 0x10]
movsx edx, word [ecx + 0x26]
add dword [esp + 0x34], 0x18
inc esi
cmp esi, edx
jl 0x4abf7a
cmp byte [esp + 0x23], 0
jne 0x4ac0f6
cmp dword [esp + 0x44], 0
jne 0x4ac0f6
mov eax, dword [edi + 0x20]
mov esi, dword [edi + 0x18]
mov dword [esp + 0x14], eax
cmp dword [esi + 0x54], eax
jg 0x4ac0cb
mov eax, dword [esi + 0x54]
test eax, eax
je 0x4ac074
add eax, eax
jmp 0x4ac079
mov eax, 0x33
mov ebx, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
add ecx, ecx
add ecx, ecx
call fcn.00448e2a
mov ebx, eax
test ebx, ebx
je 0x4ac0f6
mov eax, dword [esi]
cmp ebx, dword [eax + 0x10c]
jb 0x4ac0ab
cmp ebx, dword [eax + 0x110]
jae 0x4ac0ab
movzx ecx, word [eax + 0xf0]
jmp 0x4ac0b7
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x54], edx
mov dword [edi + 4], ebx
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x21
mov edx, dword [ebp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push edx
push esi
push 1
push 1
push eax
mov eax, dword [esp + 0x9c]
push ecx
call fcn.004408da
xor ecx, ecx
xor edx, edx
add esp, 0x18
mov dword [esp + 0x78], eax
mov dword [esp + 0x38], ecx
cmp dx, word [esi + 0x26]
jge 0x4ac4ce
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x10]
movsx edx, word [esi + 0x24]
cmp ecx, edx
jne 0x4ac270
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
cmp dword [eax + 0x54], ecx
jg 0x4ac244
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x4ac16d
add ecx, ecx
jmp 0x4ac172
mov ecx, 0x33
mov esi, dword [eax]
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
add ecx, ecx
xor ebx, ebx
add ecx, ecx
mov dword [esp + 0x4c], edx
cmp byte [esi + 0x40], bl
jne 0x4ac1fd
mov ebx, edx
test ebx, ebx
jne 0x4ac198
call fcn.00444b5a
mov ebx, eax
jmp 0x4ac1fd
cmp ebx, dword [esi + 0x10c]
jb 0x4ac1e5
cmp ebx, dword [esi + 0x110]
jae 0x4ac1e5
movzx eax, word [esi + 0xf0]
cmp ecx, eax
jle 0x4ac1fd
call fcn.00444b5a
mov ebx, eax
test ebx, ebx
je 0x4ac4b1
movzx ecx, word [esi + 0xf0]
mov edx, dword [esp + 0x4c]
push ecx
push edx
push ebx
call fcn.004ce718
mov eax, dword [esp + 0x58]
add esp, 0xc
mov ecx, esi
call fcn.0043e91a
jmp 0x4ac1fd
mov eax, dword [esp + 0x4c]
push ecx
push eax
call fcn.0047a54a
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4ac205
mov byte [esi + 0x40], 1
test ebx, ebx
je 0x4ac4b1
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
cmp ebx, dword [eax + 0x10c]
jb 0x4ac224
cmp ebx, dword [eax + 0x110]
jae 0x4ac224
movzx ecx, word [eax + 0xf0]
jmp 0x4ac230
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x54], edx
mov dword [edi + 4], ebx
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x1c
jmp 0x4ac4b1
mov eax, dword [esp + 0x54]
mov eax, dword [eax + ecx*4]
xor edx, edx
cmp eax, edx
jl 0x4ac43b
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
cmp eax, edx
je 0x4ac35f
cmp byte [eax], 0x9f
jne 0x4ac35f
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x60], ecx
cmp dword [ecx + 0x54], eax
jg 0x4ac331
mov ecx, dword [ecx + 0x54]
lea eax, [ecx + ecx]
cmp ecx, edx
jne 0x4ac2cd
mov eax, 0x33
mov edx, dword [esp + 0x60]
mov ebx, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx]
add ecx, ecx
add ecx, ecx
call fcn.00448e2a
mov ebx, eax
test ebx, ebx
je 0x4ac4b1
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
cmp ebx, dword [eax + 0x10c]
jb 0x4ac30b
cmp ebx, dword [eax + 0x110]
jae 0x4ac30b
movzx ecx, word [eax + 0xf0]
jmp 0x4ac317
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x14]
shr edx, 4
mov dword [ecx + 0x54], edx
mov dword [esi + 4], ebx
xor edx, edx
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x30]
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 0x21
jmp 0x4ac4b1
mov esi, dword [esp + 0x30]
mov edx, dword [ebp + 8]
push esi
push eax
push edx
call fcn.004a6c6a
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x34], ecx
cmp ecx, esi
je 0x4ac4b1
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
test esi, esi
je 0x4ac4b1
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x60], edx
cmp dword [edx + 0x54], eax
jg 0x4ac412
mov eax, dword [edx + 0x54]
test eax, eax
je 0x4ac3ab
add eax, eax
jmp 0x4ac3b0
mov eax, 0x33
mov ebx, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx]
add ecx, ecx
add ecx, ecx
call fcn.00448e2a
mov ebx, eax
test ebx, ebx
je 0x4ac4b1
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
cmp ebx, dword [eax + 0x10c]
jb 0x4ac3ea
cmp ebx, dword [eax + 0x110]
jae 0x4ac3ea
movzx ecx, word [eax + 0xf0]
jmp 0x4ac3f6
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x14]
shr edx, 4
mov dword [ecx + 0x54], edx
mov ecx, dword [esp + 0x34]
mov dword [esi + 4], ebx
inc dword [esi + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x22
jmp 0x4ac4b1
test dword [esp + 0x9c], 1
je 0x4ac49b
cmp ecx, 0x1f
jg 0x4ac49b
mov eax, 1
shl eax, cl
test dword [esp + 0x78], eax
jne 0x4ac49b
mov esi, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0x54], esi
jg 0x4ac474
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4ac4b1
xor edx, edx
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x30]
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 0x1c
jmp 0x4ac4b1
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
push edx
push ecx
push eax
push esi
mov eax, edi
call fcn.0047a36a
add esp, 0x10
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
movsx eax, word [edx + 0x26]
inc dword [esp + 0x30]
inc ecx
mov dword [esp + 0x38], ecx
cmp ecx, eax
jl 0x4ac13b
test byte [esp + 0x9c], 1
je 0x4ac6ee
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
push ecx
call fcn.0045834a
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x1c]
add esp, 4
test esi, esi
je 0x4ac54a
mov ebx, dword [ebp + 0x18]
lea esp, [esp]
cmp byte [esi + 8], 0x6e
jne 0x4ac543
cmp byte [esi + 9], 1
jne 0x4ac543
mov edx, dword [ebp + 0x10]
mov eax, dword [esi + 0x10]
push edx
push eax
call fcn.0043baea
add esp, 8
test eax, eax
je 0x4ac543
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
push edi
push ebx
push ecx
push edx
push esi
push eax
call fcn.004afd1a
add esp, 0x18
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x4ac50a
cmp dword [esp + 0x44], 0
je 0x4ac574
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
push ecx
push edx
push edi
push eax
mov eax, dword [esp + 0x4c]
push 0x42
call fcn.00454c7a
add esp, 0x14
jmp 0x4ac6a0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x18]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x1c], edx
cmp dword [edx + 0x54], ecx
jg 0x4ac673
mov edx, dword [edx + 0x54]
lea ecx, [edx + edx]
test edx, edx
jne 0x4ac59e
mov ecx, 0x33
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
add ecx, ecx
add ecx, ecx
xor edi, edi
cmp byte [esi + 0x40], 0
jne 0x4ac626
test ebx, ebx
jne 0x4ac5c7
call fcn.00444b5a
mov edi, eax
jmp 0x4ac626
cmp ebx, dword [esi + 0x10c]
jb 0x4ac612
cmp ebx, dword [esi + 0x110]
jae 0x4ac612
movzx edx, word [esi + 0xf0]
cmp ecx, edx
jg 0x4ac5e6
mov edi, ebx
jmp 0x4ac626
call fcn.00444b5a
mov edi, eax
test edi, edi
je 0x4ac6a0
movzx eax, word [esi + 0xf0]
push eax
push ebx
push edi
call fcn.004ce718
add esp, 0xc
mov eax, ebx
mov ecx, esi
call fcn.0043e91a
jmp 0x4ac626
push ecx
push ebx
call fcn.0047a54a
mov edi, eax
add esp, 8
test edi, edi
jne 0x4ac62a
mov byte [esi + 0x40], 1
test edi, edi
je 0x4ac6a0
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
cmp edi, dword [eax + 0x10c]
jb 0x4ac649
cmp edi, dword [eax + 0x110]
jae 0x4ac649
movzx ecx, word [eax + 0xf0]
jmp 0x4ac655
push edi
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x3c]
shr edx, 4
mov dword [esi + 0x54], edx
mov dword [ecx + 4], edi
mov edi, dword [esp + 0x18]
mov eax, ecx
mov ecx, dword [esp + 0x78]
inc dword [eax + 0x20]
mov eax, dword [eax + 4]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x58]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
mov word [eax], 0x44
mov ecx, dword [esp + 0x10]
xor eax, eax
xor esi, esi
cmp ax, word [ecx + 0x26]
jge 0x4ac6ea
mov edx, dword [esp + 0x54]
cmp dword [edx + esi*4], 0
mov edi, dword [esp + 0x10]
jge 0x4ac6e1
movsx eax, word [edi + 0x24]
cmp esi, eax
je 0x4ac6e1
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
add ecx, esi
push ecx
push esi
push edx
push edi
call fcn.0047a36a
add esp, 0x10
movsx eax, word [edi + 0x26]
inc esi
cmp esi, eax
jl 0x4ac6ae
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x48], 0
jne 0x4acbca
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x10]
xor eax, eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x34]
push esi
push edx
mov edx, dword [esp + 0x88]
push eax
mov eax, dword [ebp + 8]
push ecx
push edx
push ebx
push eax
call fcn.004a86ea
add esp, 0x2c
cmp dword [esp + 0x74], 0
je 0x4ac767
movzx ecx, byte [esp + 0x6c]
mov edx, dword [esp + 0x54]
mov eax, dword [ebp + 8]
push ecx
push edx
push 0
push esi
push ebx
call fcn.0049e78a
add esp, 0x14
cmp dword [esp + 0x48], 0
jne 0x4ac779
cmp byte [esp + 0x6c], 0
je 0x4ac8d0
cmp dword [esp + 0x44], 0
je 0x4ac7a6
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
push eax
push ecx
push 0
push edx
push 0x42
mov eax, edi
call fcn.00454c7a
add esp, 0x14
mov dword [esp + 0x4c], eax
jmp 0x4ac8d0
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], ecx
cmp dword [ecx + 0x54], eax
jg 0x4ac89d
mov eax, ecx
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x4ac7ca
add ecx, ecx
jmp 0x4ac7cf
mov ecx, 0x33
mov esi, dword [eax]
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
add ecx, ecx
xor ebx, ebx
add ecx, ecx
mov dword [esp + 0x50], edx
cmp byte [esi + 0x40], bl
jne 0x4ac85a
mov ebx, edx
test ebx, ebx
jne 0x4ac7f5
call fcn.00444b5a
mov ebx, eax
jmp 0x4ac85a
cmp ebx, dword [esi + 0x10c]
jb 0x4ac842
cmp ebx, dword [esi + 0x110]
jae 0x4ac842
movzx eax, word [esi + 0xf0]
cmp ecx, eax
jle 0x4ac85a
call fcn.00444b5a
mov ebx, eax
test ebx, ebx
je 0x4ac9db
movzx ecx, word [esi + 0xf0]
mov edx, dword [esp + 0x50]
push ecx
push edx
push ebx
call fcn.004ce718
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov ecx, esi
call fcn.0043e91a
jmp 0x4ac85a
mov eax, dword [esp + 0x50]
push ecx
push eax
call fcn.0047a54a
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4ac862
mov byte [esi + 0x40], 1
test ebx, ebx
je 0x4ac9db
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
cmp ebx, dword [eax + 0x10c]
jb 0x4ac881
cmp ebx, dword [eax + 0x110]
jae 0x4ac881
movzx ecx, word [eax + 0xf0]
jmp 0x4ac88d
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [esi + 0x54], edx
mov dword [edi + 4], ebx
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x78]
inc dword [edi + 0x20]
mov esi, dword [esp + 0x58]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x24]
mov dword [eax + 4], edx
xor edx, edx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edx
mov word [eax], 0x44
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push eax
call fcn.0047cc6a
xor edx, edx
add esp, 0x10
cmp dword [esp + 0x74], edx
jne 0x4ac90a
cmp byte [esp + 0x6c], dl
jne 0x4ac90a
cmp dword [esp + 0x44], edx
je 0x4acb1a
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], ecx
cmp dword [ecx + 0x54], eax
jg 0x4acaf5
mov ecx, dword [ecx + 0x54]
lea eax, [ecx + ecx]
cmp ecx, edx
jne 0x4ac933
mov eax, 0x33
mov edx, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
add ecx, ecx
add ecx, ecx
xor ebx, ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x50], edx
cmp byte [esi + 0x40], bl
jne 0x4acaa9
mov ebx, edx
test ebx, ebx
jne 0x4aca44
cmp byte [esi + 0xf2], dl
je 0x4ac979
movzx edx, word [esi + 0xf0]
cmp ecx, edx
jle 0x4ac9e8
inc dword [esi + 0x100]
lea edx, [ecx - 1]
cmp edx, 0x7ffffefe
ja 0x4aca3a
cmp dword [0x100b7010], 0
je 0x4aca2e
mov eax, dword [0x100b8848]
test eax, eax
je 0x4ac9a8
push eax
call dword [0x100b7064]
add esp, 4
mov eax, dword [esp + 0x78]
lea ebx, [esp + 0x14]
call fcn.0043e99a
mov eax, dword [0x100b8848]
test eax, eax
je 0x4ac9c8
push eax
call dword [0x100b706c]
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4ac9d4
mov byte [esi + 0x40], 1
mov ebx, eax
jmp 0x4acaa9
mov dword [esp + 0x4c], 1
jmp 0x4ac8d0
mov eax, dword [esi + 0x108]
test eax, eax
jne 0x4ac9fd
inc dword [esi + 0x104]
jmp 0x4ac979
mov ecx, dword [eax]
mov edx, 1
add dword [esi + 0xf4], edx
add dword [esi + 0xfc], edx
mov dword [esi + 0x108], ecx
mov ecx, dword [esi + 0xf4]
cmp ecx, dword [esi + 0xf8]
jle 0x4ac9d4
mov dword [esi + 0xf8], ecx
mov ebx, eax
jmp 0x4acaa9
push ecx
call dword [0x100b7034]
add esp, 4
jmp 0x4ac9cc
xor eax, eax
mov byte [esi + 0x40], 1
mov ebx, eax
jmp 0x4acaa9
cmp ebx, dword [esi + 0x10c]
jb 0x4aca91
cmp ebx, dword [esi + 0x110]
jae 0x4aca91
movzx eax, word [esi + 0xf0]
cmp ecx, eax
jle 0x4acaa9
call fcn.00444b5a
mov ebx, eax
test ebx, ebx
je 0x4acb1a
movzx ecx, word [esi + 0xf0]
mov edx, dword [esp + 0x50]
push ecx
push edx
push ebx
call fcn.004ce718
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov ecx, esi
call fcn.0043e91a
jmp 0x4acaa9
mov eax, dword [esp + 0x50]
push ecx
push eax
call fcn.0047a54a
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4acaad
mov byte [esi + 0x40], 1
test ebx, ebx
je 0x4acb1a
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
cmp ebx, dword [eax + 0x10c]
jb 0x4acacc
cmp ebx, dword [eax + 0x110]
jae 0x4acacc
movzx ecx, word [eax + 0xf0]
jmp 0x4acad8
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x1c]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x80]
mov dword [edi + 4], ebx
xor edx, edx
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 0x4b
cmp dword [esp + 0x48], 0
jne 0x4acb28
cmp byte [esp + 0x6c], 0
je 0x4acb47
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jbe 0x4acb3d
lea edx, [ecx + ecx*4]
mov ecx, dword [edi + 4]
mov dword [ecx + edx*4 + 8], eax
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
dec edx
mov dword [eax + 0x58], edx
mov esi, dword [esp + 0x74]
test esi, esi
je 0x4acb71
movzx ecx, byte [esp + 0x6c]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [ebp + 8]
push 0
push ecx
call fcn.0049e78a
add esp, 0x14
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
push 0
push 0
push 1
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
call fcn.0045d2da
add esp, 0x24
test esi, esi
je 0x4acbca
movzx edx, byte [esp + 0x6c]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
push edx
mov edx, dword [ebp + 0x10]
push eax
push ecx
push edx
call fcn.0046426a
mov edi, dword [esp + 0x4c]
add esp, 0x10
mov eax, dword [esp + 0x90]
test byte [eax + 0x18], 0x80
je 0x4acde9
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x19c], 0
jne 0x4acde9
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], edx
cmp dword [edx + 0x54], eax
jg 0x4acdba
mov eax, dword [edx + 0x54]
lea ecx, [eax + eax]
test eax, eax
jne 0x4acc11
mov ecx, 0x33
mov esi, dword [edx]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
add ecx, ecx
add ecx, ecx
xor ebx, ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
cmp byte [esi + 0x40], bl
jne 0x4acd73
mov ebx, eax
test ebx, ebx
jne 0x4acd0e
cmp byte [esi + 0xf2], al
je 0x4acc53
movzx edx, word [esi + 0xf0]
cmp ecx, edx
jle 0x4accb5
inc dword [esi + 0x100]
lea edx, [ecx - 1]
cmp edx, 0x7ffffefe
ja 0x4acd04
cmp dword [0x100b7010], 0
je 0x4accf8
mov eax, dword [0x100b8848]
test eax, eax
je 0x4acc82
push eax
call dword [0x100b7064]
add esp, 4
mov eax, dword [esp + 0x78]
lea ebx, [esp + 0x14]
call fcn.0043e99a
mov eax, dword [0x100b8848]
test eax, eax
je 0x4acca2
push eax
call dword [0x100b706c]
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4accae
mov byte [esi + 0x40], 1
mov ebx, eax
jmp 0x4acd73
mov eax, dword [esi + 0x108]
test eax, eax
jne 0x4accc7
inc dword [esi + 0x104]
jmp 0x4acc53
mov ecx, dword [eax]
mov edx, 1
add dword [esi + 0xf4], edx
add dword [esi + 0xfc], edx
mov dword [esi + 0x108], ecx
mov ecx, dword [esi + 0xf4]
cmp ecx, dword [esi + 0xf8]
jle 0x4accae
mov dword [esi + 0xf8], ecx
mov ebx, eax
jmp 0x4acd73
push ecx
call dword [0x100b7034]
add esp, 4
jmp 0x4acca6
xor eax, eax
mov byte [esi + 0x40], 1
mov ebx, eax
jmp 0x4acd73
cmp ebx, dword [esi + 0x10c]
jb 0x4acd5b
cmp ebx, dword [esi + 0x110]
jae 0x4acd5b
movzx eax, word [esi + 0xf0]
cmp ecx, eax
jle 0x4acd73
call fcn.00444b5a
mov ebx, eax
test ebx, ebx
je 0x4acde9
movzx ecx, word [esi + 0xf0]
mov edx, dword [esp + 0x70]
push ecx
push edx
push ebx
call fcn.004ce718
mov eax, dword [esp + 0x7c]
add esp, 0xc
mov ecx, esi
call fcn.0043e91a
jmp 0x4acd73
mov eax, dword [esp + 0x70]
push ecx
push eax
call fcn.0047a54a
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4acd77
mov byte [esi + 0x40], 1
test ebx, ebx
je 0x4acde9
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
cmp ebx, dword [eax + 0x10c]
jb 0x4acd96
cmp ebx, dword [eax + 0x110]
jae 0x4acd96
movzx ecx, word [eax + 0xf0]
jmp 0x4acda2
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x1c]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x48]
mov dword [edi + 4], ebx
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x98]
mov ecx, 1
add dword [edi + 0x20], ecx
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x25
mov esi, dword [esp + 0x18]
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
push esi
push eax
mov eax, dword [ebp + 0x10]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [ebp + 8]
push 2
push eax
push 0x6e
push ecx
push edx
call fcn.004b00aa
add esp, 0x24
cmp dword [esp + 0x40], 0
jne 0x4ad230
cmp dword [esp + 0x44], 0
je 0x4ad041
mov ecx, dword [edi + 0x18]
or eax, 0xffffffff
sub eax, esi
js 0x4ace45
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x4ace45
mov esi, dword [edi + 0x20]
mov dword [edx + eax*4], esi
mov eax, dword [edi + 0x20]
dec eax
mov dword [ecx + 0x58], eax
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], edx
cmp dword [edx + 0x54], eax
jg 0x4ad018
mov eax, dword [edx + 0x54]
lea ecx, [eax + eax]
test eax, eax
jne 0x4ace72
mov ecx, 0x33
mov esi, dword [edx]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
add ecx, ecx
add ecx, ecx
xor ebx, ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x14], eax
cmp byte [esi + 0x40], bl
jne 0x4acfd1
test eax, eax
jne 0x4acf6c
cmp byte [esi + 0xf2], bl
je 0x4aceb2
movzx edx, word [esi + 0xf0]
cmp ecx, edx
jle 0x4acf13
inc dword [esi + 0x100]
lea edx, [ecx - 1]
cmp edx, 0x7ffffefe
ja 0x4acf62
cmp dword [0x100b7010], ebx
je 0x4acf56
mov eax, dword [0x100b8848]
test eax, eax
je 0x4acee0
push eax
call dword [0x100b7064]
add esp, 4
mov eax, dword [esp + 0x78]
lea ebx, [esp + 0x14]
call fcn.0043e99a
mov eax, dword [0x100b8848]
test eax, eax
je 0x4acf00
push eax
call dword [0x100b706c]
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4acf0c
mov byte [esi + 0x40], 1
mov ebx, eax
jmp 0x4acfd1
mov eax, dword [esi + 0x108]
test eax, eax
jne 0x4acf25
inc dword [esi + 0x104]
jmp 0x4aceb2
mov ecx, dword [eax]
mov edx, 1
add dword [esi + 0xf4], edx
add dword [esi + 0xfc], edx
mov dword [esi + 0x108], ecx
mov ecx, dword [esi + 0xf4]
cmp ecx, dword [esi + 0xf8]
jle 0x4acf0c
mov dword [esi + 0xf8], ecx
mov ebx, eax
jmp 0x4acfd1
push ecx
call dword [0x100b7034]
add esp, 4
jmp 0x4acf04
xor eax, eax
mov byte [esi + 0x40], 1
mov ebx, eax
jmp 0x4acfd1
cmp eax, dword [esi + 0x10c]
jb 0x4acfbd
cmp eax, dword [esi + 0x110]
jae 0x4acfbd
movzx edx, word [esi + 0xf0]
cmp ecx, edx
jg 0x4acf8b
mov ebx, eax
jmp 0x4acfd1
call fcn.00444b5a
mov ebx, eax
test ebx, ebx
je 0x4ad230
movzx eax, word [esi + 0xf0]
mov ecx, dword [esp + 0x14]
push eax
push ecx
push ebx
call fcn.004ce718
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, esi
call fcn.0043e91a
jmp 0x4acfd1
push ecx
push eax
call fcn.0047a54a
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4acfd9
mov byte [esi + 0x40], 1
test ebx, ebx
je 0x4ad230
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
cmp ebx, dword [eax + 0x10c]
jb 0x4acff8
cmp ebx, dword [eax + 0x110]
jae 0x4acff8
movzx ecx, word [eax + 0xf0]
jmp 0x4ad004
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x48]
shr edx, 4
mov dword [esi + 0x54], edx
mov dword [edi + 4], ebx
inc dword [edi + 0x20]
mov ecx, dword [esp + 0x94]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x64]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
xor ecx, ecx
mov word [eax], 9
jmp 0x4ad226
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
cmp dword [edx + 0x54], eax
jg 0x4ad20d
mov eax, dword [edx + 0x54]
lea ecx, [eax + eax]
test eax, eax
jne 0x4ad067
mov ecx, 0x33
mov esi, dword [edx]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
add ecx, ecx
add ecx, ecx
xor ebx, ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x64], eax
cmp byte [esi + 0x40], bl
jne 0x4ad1c6
test eax, eax
jne 0x4ad161
cmp byte [esi + 0xf2], bl
je 0x4ad0a7
movzx eax, word [esi + 0xf0]
cmp ecx, eax
jle 0x4ad108
inc dword [esi + 0x100]
lea edx, [ecx - 1]
cmp edx, 0x7ffffefe
ja 0x4ad157
cmp dword [0x100b7010], ebx
je 0x4ad14b
mov eax, dword [0x100b8848]
test eax, eax
je 0x4ad0d5
push eax
call dword [0x100b7064]
add esp, 4
mov eax, dword [esp + 0x78]
lea ebx, [esp + 0x64]
call fcn.0043e99a
mov eax, dword [0x100b8848]
test eax, eax
je 0x4ad0f5
push eax
call dword [0x100b706c]
add esp, 4
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x4ad101
mov byte [esi + 0x40], 1
mov ebx, eax
jmp 0x4ad1c6
mov eax, dword [esi + 0x108]
test eax, eax
jne 0x4ad11a
inc dword [esi + 0x104]
jmp 0x4ad0a7
mov ecx, dword [eax]
mov edx, 1
add dword [esi + 0xf4], edx
add dword [esi + 0xfc], edx
mov dword [esi + 0x108], ecx
mov ecx, dword [esi + 0xf4]
cmp ecx, dword [esi + 0xf8]
jle 0x4ad101
mov dword [esi + 0xf8], ecx
mov ebx, eax
jmp 0x4ad1c6
push ecx
call dword [0x100b7034]
add esp, 4
jmp 0x4ad0f9
xor eax, eax
mov byte [esi + 0x40], 1
mov ebx, eax
jmp 0x4ad1c6
cmp eax, dword [esi + 0x10c]
jb 0x4ad1b2
cmp eax, dword [esi + 0x110]
jae 0x4ad1b2
movzx edx, word [esi + 0xf0]
cmp ecx, edx
jg 0x4ad180
mov ebx, eax
jmp 0x4ad1c6
call fcn.00444b5a
mov ebx, eax
test ebx, ebx
je 0x4ad230
movzx eax, word [esi + 0xf0]
mov ecx, dword [esp + 0x64]
push eax
push ecx
push ebx
call fcn.004ce718
mov eax, dword [esp + 0x70]
add esp, 0xc
mov ecx, esi
call fcn.0043e91a
jmp 0x4ad1c6
push ecx
push eax
call fcn.0047a54a
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4ad1ca
mov byte [esi + 0x40], 1
test ebx, ebx
je 0x4ad230
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
cmp ebx, dword [eax + 0x10c]
jb 0x4ad1e9
cmp ebx, dword [eax + 0x110]
jae 0x4ad1e9
movzx ecx, word [eax + 0xf0]
jmp 0x4ad1f5
push ebx
call dword [0x100b7040]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x54], edx
mov esi, dword [esp + 0x18]
mov dword [edi + 4], ebx
inc dword [edi + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov word [eax], 0x10
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov byte [eax + 3], 0
mov ecx, dword [edi + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0x2c]
js 0x4ad249
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x4ad249
mov esi, dword [edi + 0x20]
mov dword [edx + eax*4], esi
mov eax, dword [edi + 0x20]
mov edx, 1
sub eax, edx
mov dword [ecx + 0x58], eax
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 8]
xor ecx, ecx
cmp ebx, ecx
je 0x4ad2d6
mov eax, dword [esp + 0x84]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x8c]
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
cmp byte [eax], 0
je 0x4ad2c7
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4ad2a2
push edi
call fcn.0044aaba
add esp, 4
xor ecx, ecx
mov edx, 1
test eax, eax
jne 0x4ad2c7
add dword [edi + 0x20], edx
lea eax, [esi + esi*4]
mov esi, dword [edi + 4]
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x48]
mov byte [eax + 3], 0
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x3b
mov ebx, dword [ebx + 0x14]
add dword [esp + 0x2c], edx
add dword [esp + 0x48], edx
cmp ebx, ecx
jne 0x4ad27a
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x84]
jge 0x4ad323
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4ad302
push edi
call fcn.0044aaba
add esp, 4
xor ecx, ecx
test eax, eax
jne 0x4ad323
mov edx, 1
add dword [edi + 0x20], edx
mov eax, dword [edi + 4]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax + 3], 0
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x3b
mov eax, dword [ebp + 8]
cmp byte [eax + 0x12], 0
jne 0x4ad344
cmp dword [eax + 0x19c], ecx
jne 0x4ad344
mov ecx, eax
push ecx
call fcn.00475bfa
mov eax, dword [ebp + 8]
add esp, 4
xor ecx, ecx
mov edx, dword [esp + 0x90]
test byte [edx + 0x18], 0x80
je 0x4ad3d7
cmp dword [eax + 0x19c], ecx
jne 0x4ad3d7
cmp byte [eax + 0x12], 0
jne 0x4ad3d7
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4ad37b
push edi
call fcn.0044aaba
add esp, 4
test eax, eax
jne 0x4ad3aa
mov eax, dword [edi + 4]
mov ecx, 1
add dword [edi + 0x20], ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x98]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x23
mov eax, 1
call fcn.0044df8a
mov edx, dword [esp + 0x3c]
mov eax, dword [edx]
cmp byte [eax + 0x40], 0
jne 0x4ad3d7
mov edx, dword [edx + 0x10]
push 1
push 0x100b1738
xor eax, eax
or ecx, 0xffffffff
call fcn.0045a5ca
add esp, 8
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x4ad3ef
mov ecx, dword [esp + 0xa0]
mov dword [eax + 0x1ec], ecx
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x54]
mov ecx, esi
call fcn.0043e91a
mov edx, dword [ebp + 0xc]
push edx
mov eax, esi
call fcn.00443b3a
mov eax, dword [ebp + 0x10]
add esp, 4
push eax
push esi
call fcn.0044d58a
mov ecx, dword [ebp + 0x14]
push ecx
push esi
call fcn.0044a5ca
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret