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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x128
xor eax, eax
mov dword [esp + 0xc4], 0
push esi
mov esi, ecx
mov dword [esp + 0x5c], eax
push edi
mov edi, edx
mov dword [esp + 0x48], eax
xor edx, edx
mov dword [esp + 0xa0], eax
xorps xmm0, xmm0
mov dword [esp + 0x88], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x44], eax
mov eax, dword [esi]
mov dword [esp + 0x70], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0xb0], 0
mov dword [esp + 0x9c], edx
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x3c], edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], 1
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0x94], eax
cmp dword [esi + 0x24], edx
jne 0x4b23d2
cmp byte [eax + 0x51], dl
jne 0x4b23d2
mov edx, edi
call fcn.00494b30
mov edi, eax
mov dword [esp + 0x14], edi
test edi, edi
je 0x4b414c
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x30], 0xffff8000
test ecx, ecx
je 0x4b1e8d
mov eax, dword [esi]
xor edx, edx
mov dword [esp + 0x30], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x4b1e8d
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x4b1e81
mov dword [esp + 0x30], edx
lea eax, [esp + 0xc8]
mov edx, edi
push eax
push dword [ebp + 8]
mov ecx, esi
push 0x7f
call fcn.004b0f20
mov dword [esp + 0x68], eax
add esp, 0xc
mov eax, dword [edi + 0xc]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x70]
cmp dword [eax], 1
jle 0x4b1ec5
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
jmp 0x4b1ecd
mov dword [esp + 0x28], 0
mov edx, edi
mov ecx, esi
call fcn.00490910
test eax, eax
jne 0x4b414c
push dword [esp + 0xc8]
mov edx, edi
mov ecx, esi
call fcn.00494c40
add esp, 4
test eax, eax
jne 0x4b414c
mov eax, dword [esi + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 0x98], eax
lea edx, [eax + 1]
mov dword [esi + 0x28], edx
test byte [edi + 0x24], 0x80
mov dword [esp + 0xa8], edx
jne 0x4b1f24
mov dword [esp + 0x38], 0
jmp 0x4b1f2f
mov ecx, edi
call fcn.0048e500
mov dword [esp + 0x38], eax
mov eax, dword [edi + 8]
xor ecx, ecx
mov dword [esp + 0x8c], ecx
test eax, eax
je 0x4b1f65
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x38], eax
cmove edi, edx
inc edx
mov dword [esi + 0x28], edx
inc ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4b1f43
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x8c], ecx
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x4b1f90
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + 0x1c]
mov edx, dword [esp + 0x98]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x10], eax
mov dword [esi + 0x28], edx
jmp 0x4b1f94
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
push 0
mov dword [edx + 0x34], eax
movsx eax, word [edi + 0x2a]
add eax, ecx
lea eax, [eax*4 + 6]
add eax, ecx
mov ecx, dword [esp + 0x98]
push eax
call fcn.0044ba80
mov edx, eax
add esp, 8
mov dword [esp + 0x24], edx
test edx, edx
je 0x4b23d2
movsx eax, word [edi + 0x2a]
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x84], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [esp + 0x88], ecx
call fcn.0059d550
mov eax, dword [esp + 0x98]
add esp, 0xc
mov ecx, dword [esp + 0x7c]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [edi + 0x2a]
jge 0x4b2034
mov esi, dword [esp + 0x24]
nop word [eax + eax]
mov dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [edi + 0x2a]
cmp ecx, eax
jl 0x4b2020
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
xorps xmm0, xmm0
movaps xmmword [esp + 0x110], xmm0
mov dword [esp + 0x114], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x118], eax
mov eax, dword [esi + 8]
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x110], esi
mov dword [esp + 0x128], 0x200
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4b209d
cmp dword [esi + 0x74], eax
jne 0x4b208a
mov eax, dword [esi]
test byte [eax + 0x4c], 8
jne 0x4b208a
mov byte [esi + 0x17], 1
mov ecx, esi
call fcn.0046a6e0
mov dword [esp + 0xc], eax
test eax, eax
je 0x4b23ce
mov ecx, dword [ebp + 8]
xor esi, esi
xor al, al
mov byte [esp + 0x43], 0
mov byte [esp + 0x1f], al
mov dword [esp + 0x54], esi
cmp dword [ecx], esi
jle 0x4b229e
mov edi, ecx
lea ecx, [edi + 4]
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x28], 0
jne 0x4b20e3
mov edx, dword [ecx]
lea ecx, [esp + 0x110]
call fcn.00480140
test eax, eax
jne 0x4b244d
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
xor edi, edi
movsx eax, word [edx + 0x2a]
test eax, eax
jle 0x4b21dc
mov eax, dword [edx + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0xb8], eax
mov esi, dword [ecx + 4]
mov edx, dword [eax]
sub esi, edx
nop word [eax + eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b2151
test ecx, ecx
jne 0x4b2163
mov edx, dword [esp + 0x14]
movsx eax, word [edx + 0x28]
cmp edi, eax
jne 0x4b2192
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x54]
mov byte [esp + 0x1f], 1
mov dword [esp + 0x78], esi
mov eax, dword [ecx]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x24]
mov dword [eax + edi*4], esi
jmp 0x4b21e0
movzx eax, byte [eax + 0x632638]
movzx ecx, byte [ecx + 0x632638]
sub ecx, eax
jne 0x4b2166
inc edx
jmp 0x4b2110
mov edx, dword [esp + 0x14]
inc edi
mov eax, dword [esp + 0xb8]
add eax, 0x14
mov dword [esp + 0xb8], eax
movsx ecx, word [edx + 0x2a]
cmp edi, ecx
mov ecx, dword [esp + 0x2c]
jl 0x4b2103
mov esi, dword [esp + 0x54]
jmp 0x4b21e0
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x34]
je 0x4b21bd
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 1
je 0x4b21bd
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x43], 1
mov dword [eax + edi*4], esi
jmp 0x4b21e0
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 0x60
jne 0x4b23b4
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x2c]
mov dword [eax + edi*4], esi
jmp 0x4b21e0
mov ecx, dword [esp + 0x2c]
movsx eax, word [edx + 0x2a]
cmp edi, eax
jl 0x4b2223
cmp dword [esp + 0x38], 0
jne 0x4b242d
mov ecx, dword [ecx + 4]
call fcn.00482c90
test eax, eax
je 0x4b242d
mov eax, dword [esp + 0x2c]
or edi, 0xffffffff
mov byte [esp + 0x1f], 1
mov edx, 0x63aed8
mov dword [esp + 0x78], esi
mov eax, dword [eax]
mov dword [esp + 0x9c], eax
jmp 0x4b2237
test edi, edi
jns 0x4b222e
mov edx, 0x63aed8
jmp 0x4b2237
mov eax, dword [edx + 4]
lea ecx, [edi + edi*4]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x30]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, 0x17
push dword [eax]
call fcn.0048d290
add esp, 0xc
cmp eax, 1
je 0x4b23ce
cmp eax, 2
jne 0x4b227b
mov eax, dword [esp + 0x24]
mov dword [eax + edi*4], 0xffffffff
mov edi, dword [ebp + 8]
inc esi
mov ecx, dword [esp + 0x2c]
add ecx, 0x14
mov dword [esp + 0x54], esi
mov dword [esp + 0x2c], ecx
cmp esi, dword [edi]
jl 0x4b20c2
mov edi, dword [esp + 0x14]
mov al, byte [esp + 0x1f]
mov dl, byte [esp + 0x43]
add dl, al
test byte [edi + 0x24], 0x60
mov byte [esp + 0x54], dl
je 0x4b239f
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [esp + 0x34], ecx
cmp ax, word [edi + 0x2a]
jge 0x4b239b
xor edi, edi
nop dword [eax + eax]
mov eax, dword [esp + 0x24]
cmp dword [eax + esi*4], 0
jge 0x4b237b
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
test byte [eax + edi + 0x10], 0x60
je 0x4b237b
mov edx, dword [eax + edi + 4]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0xe8], 0
movaps xmmword [esp + 0xd0], xmm0
movq qword [esp + 0xe0], xmm0
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x34]
mov word [esp + 0xe4], ax
mov dword [esp + 0xd4], 0x49c620
test edx, edx
je 0x4b2353
lea ecx, [esp + 0xd0]
call fcn.0047daf0
mov ax, word [esp + 0xe4]
mov ecx, dword [esp + 0x34]
cmp byte [esp + 0x1f], 0
jne 0x4b2362
mov edx, 0xfffd
and ax, dx
test ax, ax
je 0x4b237b
mov eax, dword [esp + 0x24]
mov ecx, 1
mov dword [esp + 0x34], ecx
mov dword [eax + esi*4], 0x1869f
mov eax, dword [esp + 0x14]
inc esi
add edi, 0x14
movsx eax, word [eax + 0x2a]
cmp esi, eax
jl 0x4b22d0
mov edi, dword [esp + 0x14]
test ecx, ecx
jne 0x4b22b2
mov dl, byte [esp + 0x54]
cmp dword [edi + 0x38], 0
je 0x4b2453
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x4b246d
mov eax, dword [edx + 4]
lea ecx, [edi + edi*4]
push dword [eax + ecx*4]
push 0x63dd38
push dword [esp + 0x20]
call fcn.0044ed00
add esp, 0xc
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0xc4]
test ecx, ecx
je 0x4b23ed
mov eax, dword [esp + 0xc0]
mov dword [ecx + 0xf4], eax
mov esi, dword [esp + 0x94]
test edx, edx
je 0x4b23ff
mov ecx, esi
call fcn.0044b7f0
mov edx, dword [esp + 0x70]
mov ecx, esi
call fcn.00492f90
test edi, edi
je 0x4b2417
mov edx, edi
mov ecx, esi
call fcn.00482600
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4b2427
mov edx, eax
mov ecx, esi
call fcn.00481520
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 8]
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x18]
push dword [edi + eax*4 + 8]
push 0x63dd5c
push esi
call fcn.0044ed00
add esp, 0xc
mov byte [esi + 0x11], 1
mov edx, dword [esp + 0x24]
jmp 0x4b23d5
xorps xmm0, xmm0
movlpd qword [esp + 0xb8], xmm0
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x70]
mov dword [esi + 0x40], eax
movzx eax, dl
mov edx, edi
push eax
push dword [esp + 0x28]
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc0], eax
call fcn.0049ae30
mov ecx, eax
add esp, 8
cmp dword [ebp + 0x10], 5
mov edx, 1
mov eax, dword [esp + 0x88]
cmove eax, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x88], eax
xor edi, edi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], edi
mov esi, dword [eax + 8]
test esi, esi
je 0x4b265f
nop dword [eax]
cmp byte [esp + 0x54], 0
jne 0x4b285f
cmp ecx, 1
jg 0x4b285f
cmp esi, dword [esp + 0x38]
je 0x4b285f
mov edx, dword [esi + 0x24]
test edx, edx
je 0x4b2567
xorps xmm0, xmm0
mov dword [esp + 0xe8], 0
xor eax, eax
movq qword [esp + 0xe0], xmm0
mov word [esp + 0xe4], ax
lea ecx, [esp + 0xd0]
mov eax, dword [esp + 0x24]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xd4], 0x49c620
mov dword [esp + 0xe8], eax
call fcn.0047daf0
cmp byte [esp + 0x1f], 0
mov cx, word [esp + 0xe4]
jne 0x4b2557
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4b285f
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0x74], ecx
cmp ax, word [esi + 0x32]
jae 0x4b2634
mov dword [esp + 0x34], ecx
nop
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x4b259b
mov edx, dword [esp + 0x24]
cwde
mov eax, dword [edx + eax*4]
not eax
shr eax, 0x1f
jmp 0x4b2614
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movaps xmmword [esp + 0xf0], xmm0
movq qword [esp + 0x100], xmm0
mov dword [esp + 0x108], 0
mov edx, dword [eax + ecx + 4]
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov word [esp + 0x104], cx
mov dword [esp + 0xf4], 0x49c620
mov dword [esp + 0x108], eax
test edx, edx
je 0x4b25f9
lea ecx, [esp + 0xf0]
call fcn.0047daf0
mov cx, word [esp + 0x104]
cmp byte [esp + 0x1f], 0
jne 0x4b2608
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
mov ecx, dword [esp + 0x34]
setne al
test eax, eax
jne 0x4b282f
movzx eax, word [esi + 0x32]
inc edi
add ecx, 0x14
mov dword [esp + 0x34], ecx
cmp edi, eax
jl 0x4b2580
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x7c]
mov byte [edi + eax + 1], 0
mov eax, dword [esp + 0x84]
mov dword [eax + edi*4], ecx
inc edi
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x6c], edi
test esi, esi
jne 0x4b24d0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x84]
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [edx + edi*4], eax
cmp dword [esp + 0x88], 0
je 0x4b269b
mov eax, dword [esp + 0x8c]
inc eax
push eax
push 1
push dword [esp + 0x84]
call fcn.0059d550
mov ecx, dword [esp + 0x24]
add esp, 0xc
cmp byte [ecx + 0x12], 0
jne 0x4b26ac
mov eax, dword [esp + 0xc]
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x5c], 0
jne 0x4b26c2
cmp dword [esp + 0x64], 0
mov dword [esp + 0x34], 0
je 0x4b26ca
mov dword [esp + 0x34], 1
mov eax, dword [ecx + 0x74]
mov edx, ecx
test eax, eax
mov esi, ecx
mov ecx, dword [esp + 0x30]
cmovne edx, eax
cmovne esi, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x54]
test edi, eax
jne 0x4b2701
bts edi, ecx
mov dword [edx + 0x54], edi
cmp ecx, 1
jne 0x4b2701
mov ecx, edx
call fcn.00493580
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 0x50]
mov edx, dword [esp + 0x14]
bts eax, ecx
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x34]
or byte [esi + 0x14], al
cmp dword [edx + 0x38], 0
mov esi, dword [esp + 0x18]
jne 0x4b2798
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x5c]
mov eax, dword [ecx + eax*4]
inc dword [esi + 0x2c]
cmp byte [esp + 0x43], 0
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x80], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x20], ecx
jne 0x4b2759
test edi, edi
jne 0x4b2759
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4b276d
lea eax, [ecx + 1]
mov dword [esp + 0x68], eax
movsx eax, word [edx + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x64]
cmp byte [esp + 0x54], 0
jne 0x4b277c
test edi, edi
jne 0x4b277c
test eax, eax
je 0x4b2786
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esp + 0x90], eax
movsx eax, word [edx + 0x2a]
add dword [esi + 0x2c], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4b27c0
mov eax, dword [esi + 0xf4]
mov dword [esp + 0xc0], eax
mov eax, dword [edx]
mov dword [esi + 0xf4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc4], esi
cmp dword [esp + 0x28], 0
mov edi, dword [ebp + 0xc]
jne 0x4b27fb
test eax, eax
je 0x4b27e1
push dword [esp + 0x10]
mov ecx, esi
push 0
push 0
push edi
call fcn.00494c90
add esp, 0x10
mov edx, edi
lea ecx, [esp + 0x110]
call fcn.00480140
test eax, eax
jne 0x4b23ce
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x38], 0
je 0x4b287f
push dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [esp + 0x2c]
mov edi, dword [ebp + 8]
push dword [esp + 0xa8]
push edi
push edx
mov edx, dword [esp + 0x88]
call fcn.004b4160
mov edx, dword [esp + 0x3c]
add esp, 0x18
jmp 0x4b23d5
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x6c]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
cmp dword [ebp + 0x10], 0xb
mov dword [edx + 0x2c], eax
jne 0x4b2872
cmp byte [esi + 0x36], 5
jne 0x4b2872
mov dword [esp + 0x88], 1
jmp 0x4b2872
mov edx, dword [esp + 0x18]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
mov dword [edx + 0x2c], eax
test ecx, ecx
jne 0x4b2641
jmp 0x4b2638
mov eax, dword [esp + 0x94]
dec dword [esi + 0x38]
mov edi, dword [esi + 0x38]
mov dword [esp + 0x2c], edi
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
mov dword [esp + 0x4c], edi
or eax, ecx
je 0x4b2925
cmp dword [esi + 0x78], 0
jne 0x4b2925
cmp byte [esi + 0x12], 0
jne 0x4b2925
cmp dword [ebp + 0x1c], 0
jne 0x4b2925
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov esi, dword [esp + 0xc]
mov dword [esp + 0xb4], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b28e9
push 0
push eax
push 0
mov edx, 0x45
mov ecx, esi
call fcn.0046aa40
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x4b2929
mov edi, dword [esp + 0xb4]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b2929
mov esi, dword [esp + 0xc]
cmp dword [esp + 0x28], 0
jne 0x4b299a
test byte [edx + 0x24], 0x80
jne 0x4b299a
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b295f
push dword [esp + 0x20]
mov edx, 0x48
mov ecx, esi
push dword [esp + 0x84]
push 0
call fcn.0046aa40
add esp, 0xc
jmp 0x4b2b9a
mov edx, dword [esp + 0x80]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b2b9a
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4b29a8
movzx eax, word [eax + 0x32]
jmp 0x4b29aa
xor eax, eax
mov ecx, dword [esp + 0x18]
movsx edi, ax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x28]
mov esi, dword [ecx + 0x2c]
inc eax
add eax, edi
mov dword [esp + 0x34], edi
add dword [ecx + 0x2c], eax
inc esi
cmp dword [ebp + 0x1c], 0
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], eax
jne 0x4b2b57
cmp dword [esp + 0x58], 0
je 0x4b29ec
movsx eax, word [edx + 0x2a]
jmp 0x4b29ee
xor eax, eax
lea esi, [eax + edi]
mov eax, dword [ecx + 0x28]
add esi, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
inc eax
cmp dword [esp + 0x38], 0
mov dword [ecx + 0x28], eax
je 0x4b2a6b
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
dec edx
add edx, edi
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4b2a32
push edx
push dword [esp + 0x4c]
mov edx, 0x48
mov ecx, eax
push 0
call fcn.0046aa40
add esp, 0xc
jmp 0x4b2a6b
mov edi, dword [esp + 0xc]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x48]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x60], edx
cmp dword [ecx + 0x70], edx
jg 0x4b2a95
push 0
push esi
push dword [esp + 0x44]
mov edx, 0x64
call fcn.0046aa40
add esp, 0xc
mov dword [esp + 0x60], eax
jmp 0x4b2ac8
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x3c]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4b2b17
mov ecx, dword [esp + 0x18]
mov edx, eax
call fcn.00493e00
mov edx, eax
test edx, edx
je 0x4b2b13
mov word [edx + 8], si
mov esi, dword [esp + 0xc]
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
je 0x4b2b01
push edx
mov edx, 0xfffffff7
call fcn.0046b690
add esp, 4
jmp 0x4b2b13
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x18]
je 0x4b2b53
mov edx, dword [esp + 0x70]
sub esp, 8
push dword [ebp + 0xc]
push edx
push dword [ebp + 8]
mov edx, dword [esp + 0x50]
push eax
call fcn.004b1a20
mov eax, dword [esp + 0x28]
add esp, 0x18
cmp dword [esp + 0x58], 0
mov ecx, dword [esp + 0x18]
cmovne eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x48]
cmp dword [esp + 0x28], 0
je 0x4b2b92
mov eax, dword [ecx + 0x74]
test eax, eax
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0xc0]
cmovne ecx, eax
xor eax, eax
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x30], eax
mov byte [ecx + 0x14], 1
mov dword [esp + 0x34], esi
jmp 0x4b2f3b
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
cmp dword [ebp + 0x1c], 0
je 0x4b2beb
push 0x10
push edi
push dword [ebp + 0xc]
mov dword [esp + 0xbc], 0
push dword [esp + 0x24]
mov dword [esp + 0x40], 1
call fcn.00487330
mov edi, dword [esp + 0xd4]
add esp, 0x10
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xac], 0
mov dword [esp + 0x74], edi
mov dword [esp + 0x34], eax
jmp 0x4b2cab
mov ecx, dword [esp + 0x18]
mov eax, 0x1004
cmp byte [ecx + 0x12], 0
jne 0x4b2c1f
cmp dword [esp + 0x5c], 0
jne 0x4b2c1f
cmp dword [esp + 0x64], 0
jne 0x4b2c1f
cmp byte [esp + 0x54], 0
jne 0x4b2c1f
cmp dword [esp + 0x88], 0
mov edx, 0x100c
cmove eax, edx
push dword [esp + 0xa8]
mov edx, dword [esp + 0x74]
push eax
push 0
push 0
push dword [ebp + 0xc]
call fcn.004c23c0
mov ecx, eax
add esp, 0x14
mov dword [esp + 0xb0], ecx
test ecx, ecx
je 0x4b23ce
mov eax, dword [ecx + 0x14]
movzx edx, byte [ecx + 0x2e]
mov edi, dword [ecx + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x30]
and eax, 1
mov dword [esp + 0x74], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0xac], eax
cmp edx, 1
je 0x4b2cab
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
cmp edx, 2
jne 0x4b2cab
test edi, edi
js 0x4b2cab
mov eax, dword [esp + 0x10]
cmp edi, eax
je 0x4b2caf
mov eax, dword [esp + 0x7c]
xor ecx, ecx
sub eax, dword [esp + 0x98]
cmp byte [eax + edi], cl
cmovne edx, ecx
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x24], 0x80
jne 0x4b2d9d
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b2ce1
push 0
push dword [esp + 0x24]
mov edx, 0x7f
mov ecx, esi
push eax
call fcn.0046aa40
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x4b2d14
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x4b2f3b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x84]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [edi + ecx*4], eax
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x74]
cmp dword [esi + 0x70], ecx
jg 0x4b2d62
push 0
push edx
push dword [esp + 0x88]
mov edx, 0x93
mov ecx, esi
call fcn.0046aa40
add esp, 0xc
jmp 0x4b2f37
mov edx, dword [esp + 0x80]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x93
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b2f37
mov eax, dword [esp + 0xa0]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x4b2dde
nop dword [eax]
mov eax, dword [esp + 0x48]
mov edx, ecx
mov ecx, dword [esp + 0xc]
add eax, esi
push eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [esp + 0x18]
call fcn.00485400
mov ecx, dword [esp + 0x20]
inc esi
add esp, 0xc
cmp esi, edi
jl 0x4b2db0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4b2e3b
mov edx, dword [esp + 0x60]
test edx, edx
je 0x4b2e23
mov esi, dword [esp + 0xc]
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x4b2e23
mov eax, dword [esi + 0x68]
lea edx, [edx + edx*4]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.0046b690
mov eax, dword [esp + 0x34]
add esp, 4
mov word [esi], 0xad
mov dword [esi + 0x10], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x44], ecx
jmp 0x4b2f3b
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x94]
call fcn.0049b900
mov ecx, dword [esp + 0xc]
mov esi, eax
mov dword [esp + 0x60], esi
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x4b2e77
push dword [esp + 0x44]
mov edx, 0x5b
push edi
push dword [esp + 0x50]
call fcn.0046aa40
add esp, 0xc
mov edx, eax
jmp 0x4b2eae
mov esi, dword [esp + 0x48]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
push edi
push esi
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.0046b930
mov edx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], edx
jg 0x4b2ee5
push dword [esp + 0x48]
mov edx, 0x82
mov ecx, esi
push dword [esp + 0x48]
push dword [esp + 0x44]
call fcn.0046aa40
add esp, 0xc
mov edx, eax
jmp 0x4b2f1c
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x82
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x4b2f33
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x30]
cmp dword [ebp + 0x1c], 0
jne 0x4b313c
cmp dword [esp + 0x28], 0
jne 0x4b2f5d
cmp eax, 2
je 0x4b2f5d
mov ecx, dword [esp + 0xb0]
call fcn.004c2ec0
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x4b307d
mov edx, dword [esp + 0x30]
xor esi, esi
test edx, edx
je 0x4b2f9d
mov ecx, dword [esp + 0x34]
test ecx, ecx
js 0x4b2f8a
mov eax, dword [esp + 0x7c]
sub eax, dword [esp + 0x98]
mov byte [eax + ecx], 0
test edi, edi
js 0x4b2f9d
mov eax, dword [esp + 0x7c]
sub eax, dword [esp + 0x98]
mov byte [eax + edi], 0
cmp edx, 2
jne 0x4b3010
mov ecx, dword [esp + 0x8c]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x4b3010
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jg 0x4b2fd9
push 0
push 0
push 0
mov edx, 0x11
call fcn.0046aa40
add esp, 0xc
mov esi, eax
jmp 0x4b3010
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x11
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 0
push 0
push dword [esp + 0x84]
push dword [esp + 0xa4]
push 0
push 0x61
call fcn.0049f4c0
add esp, 0x18
test esi, esi
je 0x4b3083
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x4b304f
mov esi, ecx
mov dword [esi + 0x6c], eax
jmp 0x4b3087
test esi, esi
cmovs esi, eax
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
je 0x4b306a
mov esi, dword [esp + 0xc]
mov eax, 0x657384
mov dword [eax + 8], edx
jmp 0x4b3087
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x4b3087
mov esi, dword [esp + 0xc]
jmp 0x4b308b
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4b31b3
test ecx, ecx
jne 0x4b30cf
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x34], ecx
je 0x4b30cf
cmp edi, ecx
mov edi, dword [esp + 0x2c]
je 0x4b30d3
push dword [esp + 0xa4]
mov edx, 0x1d
push dword [esp + 0x48]
push edi
push ecx
mov ecx, esi
call fcn.0046b140
mov eax, dword [esp + 0x40]
add esp, 0x10
jmp 0x4b30d3
mov edi, dword [esp + 0x2c]
cmp eax, 1
je 0x4b30e6
mov eax, dword [esp + 0x18]
dec dword [eax + 0x38]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 0x20]
cmovne edx, dword [esp + 0x44]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b3111
push 0
push edi
push edx
mov edx, 0x32
mov ecx, esi
call fcn.0046aa40
add esp, 0xc
jmp 0x4b3140
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
cmp byte [esp + 0x1f], 0
je 0x4b3627
test eax, eax
jne 0x4b357c
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
cmp dword [edi + 8], eax
je 0x4b35da
push edx
mov edx, dword [esp + 0xa0]
mov ecx, edi
call fcn.00485960
mov edx, dword [esp + 0x54]
add esp, 4
cmp eax, edx
je 0x4b35da
mov ecx, dword [edi + 8]
push edx
push eax
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + 4]
and edx, 0x200000
neg edx
sbb edx, edx
add edx, 0x4e
call fcn.0046abb0
mov edx, dword [esp + 0x58]
add esp, 8
jmp 0x4b35da
cmp dword [esp + 0x38], 0
jne 0x4b3288
cmp dword [esp + 0x28], 0
jne 0x4b3288
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x4c], edx
cmp dword [esi + 0x70], edx
jg 0x4b31fc
mov edi, dword [esp + 0x20]
mov edx, 0x2a
push edi
push dword [esp + 0x30]
mov ecx, esi
push dword [esp + 0x88]
call fcn.0046aa40
mov edx, eax
add esp, 0xc
mov dword [esp + 0x4c], edx
jmp 0x4b3232
mov edi, dword [esp + 0x80]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x2a
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b3254
push edi
push edx
push dword [esp + 0x18]
mov edx, 0x20
mov ecx, esi
call fcn.0046aa40
add esp, 0xc
jmp 0x4b3140
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b3140
mov eax, dword [esp + 0x18]
dec dword [eax + 0x38]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x4c], edi
cmp dword [esi + 0x70], ecx
jg 0x4b32b9
push 0
push dword [esp + 0x30]
mov edx, 0x25
mov ecx, esi
push dword [esp + 0x44]
call fcn.0046aa40
add esp, 0xc
jmp 0x4b32ec
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0xcc], ecx
test eax, eax
je 0x4b34ae
cmp dword [esp + 0x58], 0
jne 0x4b3144
cmp dword [esp + 0x38], 0
je 0x4b3414
mov eax, dword [esp + 0xa0]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x4b3392
mov edx, dword [esp + 0xc]
nop dword [eax]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b335b
mov eax, dword [esp + 0x48]
mov edx, 0x59
mov ecx, dword [esp + 0xc]
add eax, esi
push eax
push esi
push dword [esp + 0x44]
call fcn.0046aa40
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x4b338d
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x48]
add eax, esi
mov dword [ecx + 0xc], eax
inc esi
cmp esi, edi
jl 0x4b3330
mov esi, dword [esp + 0xc]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x4b33bd
push dword [esp + 0x48]
mov edx, 0x1d
mov ecx, esi
push dword [esp + 0x50]
push dword [esp + 0x18]
call fcn.0046aa40
add esp, 0xc
mov edx, eax
jmp 0x4b33f4
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x4b3140
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
jmp 0x4b3140
cmp dword [esi + 0x70], ecx
jg 0x4b3438
push 0
push dword [esp + 0x24]
mov edx, 0x7f
mov ecx, esi
push dword [esp + 0x44]
call fcn.0046aa40
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x4b346b
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b347a
push edx
push edi
jmp 0x4b323c
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b3140
cmp dword [esi + 0x70], ecx
jg 0x4b34ce
push 0
push dword [esp + 0x48]
mov edx, 0x7e
mov ecx, esi
push dword [esp + 0x44]
call fcn.0046aa40
add esp, 0xc
jmp 0x4b3501
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x4b3525
push dword [esp + 0x44]
mov edx, 0x1d
mov ecx, esi
push edi
push dword [esp + 0x18]
call fcn.0046aa40
add esp, 0xc
mov edx, eax
jmp 0x4b3558
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x4b3140
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b3140
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b35a7
mov edx, dword [esp + 0x50]
mov ecx, esi
push edx
mov edx, dword [esp + 0x7c]
push edx
push dword [esp + 0x44]
mov edx, 0x59
call fcn.0046aa40
mov edx, dword [esp + 0x5c]
add esp, 0xc
jmp 0x4b35da
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b35f8
push 0
push 0
push edx
mov edx, 0xf
mov ecx, esi
call fcn.0046aa40
add esp, 0xc
jmp 0x4b3627
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x43], 0
jne 0x4b36ea
cmp dword [esp + 0x64], 0
jne 0x4b36f5
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x4b37db
xor esi, esi
push dword [ebp + 0x10]
mov edx, dword [esp + 0x60]
push dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 3
push 0
push dword [ebp + 8]
call fcn.004b18b0
mov ecx, dword [esp + 0x28]
or esi, eax
mov dword [esp + 0x74], esi
xor eax, eax
add esp, 0x14
xor esi, esi
cmp ax, word [ecx + 0x2a]
jge 0x4b376e
xor edi, edi
mov eax, dword [ecx + 4]
mov edx, esi
movzx eax, word [edi + eax + 0x10]
mov dword [esp + 0x78], eax
call fcn.0048e550
movsx edx, ax
add edx, dword [esp + 0x68]
cmp dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x34], edx
je 0x4b3744
cmp esi, 0x20
jge 0x4b36c4
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [esp + 0x60], eax
jne 0x4b3744
test byte [esp + 0x78], 1
jne 0x4b3744
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4b3709
push 0
push edx
push 0
mov edx, 0x48
mov ecx, eax
call fcn.0046aa40
jmp 0x4b3757
cmp dword [esp + 0x64], 0
je 0x4b3649
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
call fcn.0049ad40
mov esi, eax
jmp 0x4b364b
mov edx, dword [esp + 0xc]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edx + 0x6c], eax
mov eax, edx
mov edx, dword [esp + 0x34]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b375a
mov ecx, dword [esp + 0xc]
push edx
mov edx, dword [esp + 0x18]
push esi
push dword [esp + 0x18]
call fcn.00485400
add esp, 0xc
mov ecx, dword [esp + 0x14]
inc esi
add edi, 0x14
movsx eax, word [ecx + 0x2a]
cmp esi, eax
jl 0x4b3683
cmp byte [esp + 0x1f], 0
jne 0x4b37d7
cmp dword [esp + 0x38], 0
jne 0x4b37d7
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b37a4
mov edx, dword [esp + 0x50]
mov ecx, esi
push 0
push edx
push dword [esp + 0x28]
mov edx, 0x4d
call fcn.0046aa40
add esp, 0xc
jmp 0x4b37d7
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x5c]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x18]
push 1
push 1
push dword [ebp + 8]
call fcn.004b18b0
mov edx, dword [esp + 0xa4]
xor edi, edi
mov dword [esp + 0x8c], eax
add esp, 0x14
mov eax, dword [esp + 0x14]
mov esi, edx
mov dword [esp + 0x68], edi
movzx ecx, word [eax + 0x2a]
cmp di, cx
jge 0x4b3a03
xor edx, edx
mov dword [esp + 0x60], edx
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x4b3852
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b3988
mov ecx, dword [esp + 0xc]
mov edx, 0x48
push 0
push esi
push 0
call fcn.0046aa40
jmp 0x4b39d7
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0x10]
test al, 0x60
je 0x4b3871
test al, 0x20
lea eax, [esi - 1]
cmove eax, esi
mov esi, eax
jmp 0x4b39da
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x4b3957
cmp dword [esp + 0x28], 0
je 0x4b38fe
cmp dword [esp + 0x58], 0
jne 0x4b3895
mov ecx, dword [esp + 0xa0]
movzx ecx, cx
movsx edx, cx
add edx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4b38c4
push esi
push edx
push dword [esp + 0x44]
mov edx, 0x59
mov ecx, eax
call fcn.0046aa40
jmp 0x4b39d7
mov edx, dword [esp + 0xc]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edx + 0x6c], eax
mov eax, edx
mov edx, dword [esp + 0x3c]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b39da
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], eax
cmp dword [ecx + 8], 0
je 0x4b39da
push esi
mov edx, eax
call fcn.00485960
add esp, 4
cmp eax, esi
je 0x4b39da
mov edx, dword [esp + 0x68]
push esi
push eax
mov eax, dword [esp + 0x20]
mov edx, dword [edx + 4]
and edx, 0x200000
neg edx
mov ecx, dword [eax + 8]
sbb edx, edx
add edx, 0x4e
call fcn.0046abb0
add esp, 8
jmp 0x4b39da
test dword [esp + 0xc8], 1
je 0x4b39b9
cmp edi, 0x1f
jg 0x4b39b9
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x78], eax
jne 0x4b39b9
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x4b383a
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b39da
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
push esi
push edi
push dword [esp + 0x18]
call fcn.00485400
mov dword [esp + 0xb8], 0
add esp, 0xc
mov eax, dword [esp + 0x14]
inc edi
add dword [esp + 0x60], 0x14
inc esi
mov edx, dword [esp + 0x60]
movzx ecx, word [eax + 0x2a]
movsx eax, cx
cmp edi, eax
mov eax, dword [esp + 0x14]
jl 0x4b3822
mov edx, dword [esp + 0x90]
test byte [eax + 0x24], 0x60
je 0x4b3a1a
mov ecx, dword [esp + 0x18]
push eax
call fcn.0049bbb0
mov eax, dword [esp + 0x18]
add esp, 4
test byte [esp + 0xc8], 1
mov edi, dword [esp + 0xc]
je 0x4b3bd9
push dword [esp + 0x90]
mov edx, eax
mov ecx, edi
call fcn.0049b9c0
mov esi, dword [esp + 0x50]
add esp, 4
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
push esi
push dword [ebp + 0x10]
push dword [esp + 0x28]
push dword [esp + 0x20]
push 1
push dword [ebp + 8]
push 0x7f
call fcn.004b1820
add esp, 0x1c
cmp dword [esp + 0x58], 0
jne 0x4b3bdd
cmp dword [esp + 0x38], 0
je 0x4b3aef
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x4b3a9c
push dword [esp + 0x44]
mov edx, 0x1d
mov ecx, edi
push esi
push dword [esp + 0x18]
call fcn.0046aa40
add esp, 0xc
mov edx, eax
jmp 0x4b3acf
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x4b3b40
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xa4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4b3b40
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b3b11
push dword [esp + 0x20]
mov edx, 0x20
mov ecx, edi
push esi
push dword [esp + 0x18]
call fcn.0046aa40
add esp, 0xc
jmp 0x4b3b40
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov eax, dword [esp + 0x90]
xor esi, esi
mov edi, eax
cmp cx, word [edx + 0x2a]
jge 0x4b3bbc
mov dword [esp + 0x68], ecx
nop dword [eax + eax]
mov eax, dword [edx + 4]
movzx eax, word [ecx + eax + 0x10]
test al, 0x60
je 0x4b3b78
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x4b3ba4
mov eax, dword [esp + 0x24]
cmp dword [eax + esi*4], 0
jge 0x4b3ba4
movsx eax, word [edx + 0x28]
cmp esi, eax
je 0x4b3ba4
mov ecx, dword [esp + 0xc]
push edi
push esi
push dword [esp + 0x18]
call fcn.00485400
mov ecx, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0x14]
movsx eax, word [edx + 0x2a]
inc esi
add ecx, 0x14
inc edi
mov dword [esp + 0x68], ecx
cmp esi, eax
jl 0x4b3b60
mov eax, dword [esp + 0x90]
test byte [edx + 0x24], 0x60
je 0x4b3c6f
mov ecx, dword [esp + 0x18]
push edx
mov edx, eax
call fcn.0049bbb0
mov edi, dword [esp + 0x10]
add esp, 4
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x58], 0
jne 0x4b3ed2
push 0
push dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x90]
push eax
push esi
push dword [ebp + 0x10]
push dword [esp + 0x68]
push dword [esp + 0x38]
push dword [esp + 0x6c]
push dword [esp + 0xc8]
push dword [esp + 0x34]
push dword [esp + 0xac]
call fcn.0049d260
add esp, 0x2c
cmp dword [esp + 0x88], 0
jne 0x4b3c3d
cmp byte [esp + 0x54], 0
je 0x4b3cd1
cmp dword [esp + 0x38], 0
je 0x4b3d50
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jg 0x4b3c7c
push dword [esp + 0x44]
mov edx, 0x1d
mov ecx, edi
push dword [esp + 0x50]
push dword [esp + 0x18]
call fcn.0046aa40
add esp, 0xc
mov esi, eax
jmp 0x4b3caf
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x4c]
jmp 0x4b3be1
mov edx, dword [esp + 0x10]
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x4b3ccd
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov edx, dword [esp + 0xa4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x64], 0
je 0x4b3cfa
push dword [esp + 0xb8]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x28]
push 0
push edx
mov edx, dword [esp + 0x24]
call fcn.0049a750
add esp, 0x10
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push dword [esp + 0x88]
push dword [esp + 0xb0]
push dword [esp + 0x1c]
call fcn.00495c30
add esp, 0x10
cmp dword [esp + 0xac], 0
je 0x4b3ddc
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b3da9
push 0
push 0
push dword [esp + 0x18]
mov edx, 0x87
mov ecx, edi
call fcn.0046aa40
add esp, 0xc
jmp 0x4b3ddc
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b3d75
push dword [esp + 0x20]
mov edx, 0x20
mov ecx, edi
push esi
push dword [esp + 0x18]
call fcn.0046aa40
add esp, 0xc
jmp 0x4b3cd1
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b3cd5
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x64]
cmp edx, 1
jg 0x4b3dec
cmp byte [esp + 0x54], 0
je 0x4b3e48
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b3e11
push 0
push 0
push dword [esp + 0x18]
mov edx, 0x7a
mov ecx, edi
call fcn.0046aa40
mov edx, dword [esp + 0x70]
add esp, 0xc
jmp 0x4b3e48
mov esi, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x7a
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test edx, edx
je 0x4b3e6d
push dword [esp + 0xb8]
mov edx, dword [esp + 0x18]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x58]
push 0
call fcn.0049a750
add esp, 0x10
mov edx, dword [esp + 0x14]
xor eax, eax
cmp dword [esp + 0x30], 2
mov ecx, dword [esp + 0x18]
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0x90]
push dword [esp + 0x60]
push dword [esp + 0xbc]
push dword [esp + 0x28]
call fcn.0049f210
add esp, 0x1c
cmp dword [esp + 0x64], 0
je 0x4b3ed2
push dword [esp + 0xb8]
mov edx, dword [esp + 0x18]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x28]
push dword [ebp + 8]
call fcn.0049b610
add esp, 0x10
mov edx, dword [esp + 0xb4]
test edx, edx
je 0x4b3f2e
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b3efb
push 0
push 1
push edx
mov edx, 0x52
mov ecx, edi
call fcn.0046aa40
add esp, 0xc
jmp 0x4b3f2e
mov esi, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
push esi
push dword [ebp + 0x10]
push dword [esp + 0x28]
push dword [esp + 0x20]
push 2
push dword [ebp + 8]
push 0x7f
call fcn.004b1820
mov eax, dword [esp + 0x4c]
add esp, 0x1c
cmp eax, 1
je 0x4b4076
cmp eax, 2
jne 0x4b3fa6
mov ecx, dword [edi + 0xc]
not esi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4b3f8c
push esi
mov edx, edi
call fcn.0046b240
mov ecx, dword [esp + 0xb4]
add esp, 4
call fcn.004c2ec0
jmp 0x4b4076
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0xb0]
call fcn.004c2ec0
jmp 0x4b4076
cmp dword [esp + 0x38], 0
jne 0x4b3ff6
cmp dword [esp + 0x28], 0
jne 0x4b3ff6
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b3fd5
push 0
push esi
push 0
mov edx, 0xb
mov ecx, edi
call fcn.0046aa40
add esp, 0xc
jmp 0x4b4076
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
jmp 0x4b4066
mov ecx, dword [edi + 0xc]
not esi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4b4010
push esi
mov edx, edi
call fcn.0046b240
add esp, 4
jmp 0x4b4019
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + esi*4], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b4040
mov edx, dword [esp + 0xcc]
mov ecx, edi
push 0
push edx
push dword [esp + 0x44]
mov edx, 5
call fcn.0046aa40
add esp, 0xc
jmp 0x4b4076
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xcc]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x2c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4b4094
push edx
mov edx, edi
call fcn.0046b240
add esp, 4
jmp 0x4b409d
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x12], 0
jne 0x4b40c0
cmp dword [eax + 0x78], 0
jne 0x4b40c0
cmp dword [ebp + 0x1c], 0
jne 0x4b40c0
cmp dword [eax + 0x70], 0
je 0x4b40c0
mov ecx, eax
call fcn.0049c000
mov edx, dword [esp + 0xb4]
test edx, edx
je 0x4b23ce
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b40ed
push 0
push 1
push edx
mov edx, 0x50
mov ecx, edi
call fcn.0046aa40
add esp, 0xc
jmp 0x4b411c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, 1
mov ecx, edi
call fcn.0046cb90
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x4b23ce
mov ecx, dword [edi + 0x74]
mov edx, 0x63dd70
push 0
push 1
push 0xffffffffffffffff
call fcn.00469e00
jmp 0x4b23cb
xor edx, edx
jmp 0x4b23d2