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

Disassembly:
sub esp, 0x88
push ebx
push ebp
push esi
push edi
call fcn.005a44e0
mov esi, eax
mov eax, dword [0x6d6214]
xor ebp, ebp
mov dword [esp + 0x2c], esi
cmp eax, ebp
mov edi, 0xc
je 0x4b634d
mov ecx, dword [0x6d620c]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [esp + 0x20], eax
je 0x4b634d
mov ecx, dword [eax + 0x10]
cmp ecx, ebp
je 0x4b6336
mov eax, dword [ecx]
mov edx, dword [0x6d67a8]
cmp eax, edx
jne 0x4b62f4
mov dword [0x6d67c8], esi
jmp 0x4b6336
cmp eax, 1
jb 0x4b6336
cmp eax, 0x7fff
ja 0x4b6336
mov edx, dword [ecx + 0x20]
sub edx, esi
add edx, 0x4268
jns 0x4b6336
cmp eax, 0x3fff
jbe 0x4b6333
cmp eax, 0x4000
jb 0x4b632c
cmp eax, 0x5fff
ja 0x4b632c
cmp dword [ecx + 0x250], edi
je 0x4b6336
jmp 0x4b6333
cmp eax, 0x6000
jb 0x4b6336
mov dword [ecx + 0x1c], ebp
lea ecx, [esp + 0x20]
call fcn.0044ea10
mov ecx, dword [0x6d620c]
mov eax, dword [esp + 0x20]
cmp eax, ecx
jne 0x4b62d9
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x30], ebp
test dword [ebx + 0x10], 0xfffffff8
jbe 0x4b8424
mov ecx, dword [ebx + ebp*8 + 0x18]
mov edx, dword [0xa23398]
mov esi, dword [ebx + ebp*8 + 0x14]
xor eax, eax
mov ax, word [ebx + ebp*8 + 0x18]
shr ecx, 0x10
push eax
mov eax, dword [0xa23394]
push ecx
push edx
push eax
shr esi, 0x10
call fcn.004259d0
mov dword [esp + 0x24], eax
mov ax, word [ebx + ebp*8 + 0x14]
mov cl, al
mov edi, edx
mov edx, dword [ebx + 0x1018]
and ecx, 0x25
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov dword [0x6d6880], edx
mov cx, word [ebx + 0x101c]
xor edx, edx
mov dword [0x6d6884], ecx
mov dx, word [ebx + 0x101e]
add esp, 0x10
shr al, 5
and eax, 7
mov dword [0x6d6888], edx
mov ecx, dword [ebx + 0x1020]
test ax, ax
mov dword [0x6d68dc], ecx
jne 0x4b63eb
mov eax, 8
lea ebp, [eax + eax + 0xfffe]
cmp si, 0x6000
mov dword [esp + 0x1c], ebp
jb 0x4b7120
cmp si, 0x7fff
ja 0x4b7120
mov eax, dword [0x6d67a8]
and esi, 0xffff
cmp esi, eax
jne 0x4b6985
mov eax, dword [0x6573ac]
xor ebp, ebp
cmp eax, ebp
je 0x4b8406
mov esi, dword [0x6d69f8]
cmp esi, 8
je 0x4b68b1
cmp esi, 7
je 0x4b68b1
mov ecx, dword [esp + 0x20]
mov eax, ecx
and eax, 0xffff
cmp eax, 0x21
mov dword [esp + 0x10], eax
ja case.0x4b6466.4
xor edx, edx
mov dl, byte [eax + 0x4b8478]
jmp dword [edx*4 + 0x4b8464]
mov edx, dword [0x6d6b98]
mov ebx, dword [0xa4f188]
cmp edx, ebx
jl 0x4b64d5
lea eax, [ebx + 0x9c]
cmp edx, eax
jge 0x4b64d5
mov eax, dword [0x6d6b9c]
mov ecx, dword [0xa4f18c]
cmp eax, ecx
jl 0x4b64db
lea ebp, [ecx + 0x184]
cmp eax, ebp
jge 0x4b64db
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, ebx
add eax, edx
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
and ecx, 0xfeffffff
mov dword [eax], ecx
mov esi, dword [0x6d69f8]
mov ebx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
mov eax, dword [0xcf95c4]
mov ebp, dword [esp + 0x14]
test eax, eax
mov dword [0x6d6b98], ebp
mov dword [0x6d6b9c], edi
je 0x4b653b
cmp esi, 2
je 0x4b653b
cmp esi, 1
je 0x4b653b
cmp esi, 0x20
je 0x4b653b
mov ecx, dword [0xcf9cc0]
mov edx, dword [0xcf938c]
push ecx
push edx
call fcn.004e7730
mov ebp, dword [0x6d6b98]
mov esi, dword [0x6d69f8]
mov ebx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
add esp, 8
mov dword [0xcf95c4], 0
test esi, esi
je 0x4b654d
cmp esi, 0x10
je 0x4b654d
cmp esi, 0x21
jne 0x4b65e6
mov edx, dword [0x6d67b0]
mov eax, ebp
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jg 0x4b6578
mov eax, dword [0x6d6b9c]
mov edx, dword [0x6d67b4]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jle 0x4b65e6
mov eax, dword [esp + 0x14]
xor esi, esi
push 0x7d9
push esi
push edi
push eax
push 0x6d67a8
call fcn.00458e10
mov ecx, dword [0x6d67b0]
mov edx, dword [0x6d67b4]
mov eax, dword [0x6d6ae8]
mov ebp, dword [0x6d6b98]
mov ebx, dword [0xa4f188]
mov dword [0x6d6c30], ecx
mov ecx, dword [0x6d6b00]
mov word [0x6d6fb6], si
mov dword [0x6d6c2c], ecx
mov ecx, dword [0xa4f18c]
mov dword [0x6d7194], esi
mov esi, dword [0x6d69f8]
add esp, 0x14
mov dword [0x6d6c34], edx
mov dword [0x6d6c28], eax
test esi, esi
je 0x4b65f4
cmp esi, 0x10
je 0x4b65f4
cmp esi, 0x21
jne 0x4b6622
mov edx, dword [0x6d69fc]
mov eax, dword [esp + 0x10]
push edx
push eax
mov ecx, 0x6d67a8
call fcn.00476c30
mov ebp, dword [0x6d6b98]
mov esi, dword [0x6d69f8]
mov ebx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
cmp ebp, ebx
jl 0x4b8406
lea edx, [ebx + 0x9c]
cmp ebp, edx
jge 0x4b6688
mov eax, dword [0x6d6b9c]
cmp eax, ecx
jl 0x4b6688
lea edx, [ecx + 0x184]
cmp eax, edx
jge 0x4b6688
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, ebx
add eax, ebp
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
or ecx, 0x1000000
mov dword [eax], ecx
mov ebp, dword [0x6d6b98]
mov esi, dword [0x6d69f8]
mov ebx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
cmp ebp, ebx
jl 0x4b8406
lea edx, [ebx + 0x9c]
cmp ebp, edx
jge 0x4b8406
mov eax, dword [0x6d6b9c]
cmp eax, ecx
jl 0x4b8406
lea edx, [ecx + 0x184]
cmp eax, edx
jge 0x4b8406
cmp esi, 0xc
je 0x4b8406
mov eax, dword [0x6d67b4]
mov edx, dword [0x6d67b0]
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, ebx
add eax, edx
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
lea eax, [eax + edx*8]
jmp 0x4b83fc
cmp esi, 2
je 0x4b670a
cmp esi, 1
jne 0x4b670a
mov dword [0x6d69f8], 2
mov dword [0x6d6b34], ebp
mov esi, dword [0x6d6b98]
mov edx, dword [0xa4f188]
cmp esi, edx
jl 0x4b676c
lea ecx, [edx + 0x9c]
cmp esi, ecx
jge 0x4b676c
mov eax, dword [0x6d6b9c]
mov ecx, dword [0xa4f18c]
cmp eax, ecx
jl 0x4b6772
lea ebx, [ecx + 0x184]
cmp eax, ebx
jge 0x4b6772
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, edx
add eax, esi
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
and ecx, 0xfeffffff
mov dword [eax], ecx
mov edx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
mov esi, dword [esp + 0x14]
mov dword [0x6d6b9c], edi
cmp esi, edx
mov dword [0x6d6b98], esi
jl 0x4b8406
lea eax, [edx + 0x9c]
cmp esi, eax
jge 0x4b8406
cmp edi, ecx
jl 0x4b8406
lea eax, [ecx + 0x184]
cmp edi, eax
jge 0x4b8406
sub edi, ecx
lea eax, [edi + edi*4]
shl eax, 3
sub eax, edi
shl eax, 2
sub eax, edx
add eax, esi
jmp 0x4b7f8c
cmp esi, 0x20
je 0x4b67de
cmp esi, 1
jne 0x4b67de
mov dword [0x6d69f8], 0x20
mov dword [0x6d6b34], ebp
mov esi, dword [0x6d6b98]
mov edx, dword [0xa4f188]
cmp esi, edx
jl 0x4b676c
lea eax, [edx + 0x9c]
cmp esi, eax
jge 0x4b676c
mov eax, dword [0x6d6b9c]
mov ecx, dword [0xa4f18c]
jmp 0x4b696a
cmp esi, 1
je 0x4b682a
cmp esi, 2
jne 0x4b682a
mov dword [0x6d69f8], 1
mov dword [0x6d6b34], ebp
mov esi, dword [0x6d6b98]
mov edx, dword [0xa4f188]
cmp esi, edx
jl 0x4b676c
lea eax, [edx + 0x9c]
cmp esi, eax
jge 0x4b676c
mov eax, dword [0x6d6b9c]
mov ecx, dword [0xa4f18c]
jmp 0x4b696a
cmp esi, eax
je 0x4b687f
cmp cx, 0x22
jae 0x4b687f
cmp esi, ebp
je 0x4b6874
cmp esi, 0x10
je 0x4b6874
cmp esi, 0x21
jne 0x4b687f
mov dword [0x6d69f8], eax
mov dword [0x6d6b34], ebp
mov esi, dword [0x6d6b98]
mov edx, dword [0xa4f188]
cmp esi, edx
jl 0x4b676c
lea eax, [edx + 0x9c]
cmp esi, eax
jge 0x4b676c
mov eax, dword [0x6d6b9c]
mov ecx, dword [0xa4f18c]
jmp 0x4b696a
mov eax, dword [esp + 0x20]
and eax, 0xffff
cmp eax, 0x12
je 0x4b68c4
cmp eax, 0x19
jne 0x4b693d
call fcn.004574c0
mov esi, dword [0x6d6b98]
mov edx, dword [0xa4f188]
cmp esi, edx
jl 0x4b676c
mov ecx, dword [0xa4f18c]
lea eax, [edx + 0x9c]
cmp esi, eax
mov eax, dword [0x6d6b9c]
jge 0x4b6954
cmp eax, ecx
jl 0x4b6954
lea ebx, [ecx + 0x184]
cmp eax, ebx
jge 0x4b6954
cmp dword [0x6d69f8], 0xc
je 0x4b6954
mov eax, dword [0x6d67b4]
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, edx
mov edx, dword [0x6d67b0]
add eax, edx
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
or ecx, 0x800000
mov dword [eax], ecx
mov eax, dword [0x6d6b9c]
mov esi, dword [0x6d6b98]
mov edx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
cmp esi, edx
jl 0x4b6772
lea ebx, [edx + 0x9c]
cmp esi, ebx
jge 0x4b6772
cmp eax, ecx
jl 0x4b6772
lea ebx, [ecx + 0x184]
cmp eax, ebx
jge 0x4b6772
jmp 0x4b673d
mov ebx, dword [0x6d620c]
lea eax, [esp + 0x10]
push eax
mov ecx, 0x6d6208
mov dword [esp + 0x14], esi
call fcn.00409380
mov ecx, dword [0x6d620c]
mov dword [esp + 0x24], eax
cmp eax, ecx
je 0x4b69bb
mov edx, dword [esp + 0x10]
cmp edx, dword [eax + 0xc]
jb 0x4b69bb
lea eax, [esp + 0x24]
jmp 0x4b69c3
mov dword [esp + 0x3c], ecx
lea eax, [esp + 0x3c]
cmp dword [eax], ebx
jne 0x4b6a19
mov eax, dword [0xa4f188]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jl 0x4b8406
add eax, 0x9c
cmp ecx, eax
jge 0x4b8406
mov eax, dword [0xa4f18c]
cmp edi, eax
jl 0x4b8406
add eax, 0x184
cmp edi, eax
jge 0x4b8406
cmp word [esp + 0x20], 1
je 0x4b8406
push esi
call fcn.00456100
add esp, 4
jmp 0x4b8406
lea eax, [esp + 0x50]
lea ecx, [esp + 0x70]
push eax
push ecx
mov ecx, 0x6d6208
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], 0
call fcn.00408bd0
mov edx, eax
mov eax, dword [edx]
mov esi, dword [eax + 0x10]
mov ecx, dword [edx + 4]
test esi, esi
mov dword [esp + 0x28], ecx
je 0x4b8459
mov eax, dword [esp + 0x2c]
mov edx, 1
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x250]
cmp eax, 8
mov dword [esi + 0x1c], edx
mov dword [esp + 0x24], eax
je 0x4b7099
cmp eax, 7
je 0x4b7099
mov ecx, dword [esp + 0x20]
and ecx, 0xffff
cmp ecx, 0x21
mov dword [esp + 0x10], ecx
ja case.0x4b6a99.5
xor ebx, ebx
mov bl, byte [ecx + 0x4b84b4]
jmp dword [ebx*4 + 0x4b849c]
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b6af9
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b6af9
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b6af9
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b6af9
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov eax, dword [esi + 0x250]
mov ecx, dword [esp + 0x14]
test eax, eax
mov dword [esi + 0x3f0], ecx
mov dword [esi + 0x3f4], edi
je 0x4b6b1d
cmp eax, 0x10
je 0x4b6b1d
cmp eax, 0x21
jne 0x4b6b84
mov edx, dword [esi + 8]
mov eax, ecx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jg 0x4b6b3f
mov edx, dword [esi + 0xc]
mov eax, edi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jle 0x4b6b84
push 0x7db
push 0
push edi
push ecx
push esi
call fcn.00458e10
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x340]
mov dword [esi + 0x488], edx
mov edx, dword [esi + 0x358]
add esp, 0x14
mov dword [esi + 0x48c], eax
mov dword [esi + 0x480], ecx
mov dword [esi + 0x484], edx
mov word [esi + 0x80e], 0
mov eax, dword [esi + 0x250]
test eax, eax
je 0x4b6b98
cmp eax, 0x10
je 0x4b6b98
cmp eax, 0x21
jne 0x4b6bab
mov eax, dword [esi + 0x254]
mov ecx, dword [esp + 0x10]
push eax
push ecx
mov ecx, esi
call fcn.00476c30
mov edi, dword [esi + 0x3f0]
mov edx, dword [0xa4f188]
cmp edi, edx
jl 0x4b6fe8
lea eax, [edx + 0x9c]
cmp edi, eax
jge 0x4b6fe8
mov eax, dword [esi + 0x3f4]
mov ecx, dword [0xa4f18c]
cmp eax, ecx
jl 0x4b6fee
lea ebx, [ecx + 0x184]
cmp eax, ebx
jge 0x4b6fee
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, edx
add eax, edi
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
lea eax, [eax + edx*8]
jmp 0x4b6fd8
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b6c6b
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b6c6b
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b6c6b
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b6c6b
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov eax, dword [esi + 0x250]
cmp eax, 2
je 0x4b6c8f
cmp eax, 1
jne 0x4b6c8f
mov dword [esi + 0x250], 2
mov dword [esi + 0x38c], 0
mov edx, dword [esp + 0x14]
push esi
mov dword [esi + 0x3f0], edx
mov dword [esi + 0x3f4], edi
call fcn.004524c0
mov ecx, dword [esi + 0x3f0]
mov edi, dword [0xa4f188]
add esp, 4
cmp ecx, edi
jl 0x4b8406
lea eax, [edi + 0x9c]
cmp ecx, eax
jge 0x4b8406
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b8406
lea esi, [edx + 0x184]
cmp eax, esi
jge 0x4b8406
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, edi
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
or ecx, 0x1000000
jmp 0x4b8404
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b6d71
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b6d71
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b6d71
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b6d71
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov eax, dword [esi + 0x250]
cmp eax, 0x20
je 0x4b6d95
cmp eax, 1
jne 0x4b6d95
mov dword [esi + 0x250], 0x20
mov dword [esi + 0x38c], 0
mov edx, dword [esp + 0x14]
push esi
mov dword [esi + 0x3f0], edx
mov dword [esi + 0x3f4], edi
call fcn.004524c0
mov ecx, dword [esi + 0x3f0]
mov edi, dword [0xa4f188]
add esp, 4
cmp ecx, edi
jl 0x4b8406
lea eax, [edi + 0x9c]
cmp ecx, eax
jge 0x4b8406
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b8406
lea esi, [edx + 0x184]
cmp eax, esi
jge 0x4b8406
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, edi
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
or ecx, 0x1000000
jmp 0x4b8404
cmp eax, edx
je 0x4b6e37
cmp eax, 2
jne 0x4b6e37
mov dword [esi + 0x250], edx
mov dword [esi + 0x38c], 0
mov edx, dword [esp + 0x14]
push esi
mov dword [esi + 0x3f0], edx
mov dword [esi + 0x3f4], edi
call fcn.004524c0
mov ecx, dword [esi + 0x3f0]
mov edi, dword [0xa4f188]
add esp, 4
cmp ecx, edi
jl 0x4b8406
lea eax, [edi + 0x9c]
cmp ecx, eax
jge 0x4b8406
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b8406
lea esi, [edx + 0x184]
cmp eax, esi
jge 0x4b8406
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, edi
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
or ecx, 0x1000000
jmp 0x4b8404
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b6f1d
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b6f1d
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b6f1d
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b6f19
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 0x250]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
je 0x4b6f53
test eax, eax
je 0x4b6f39
cmp eax, 0x10
je 0x4b6f39
cmp eax, 0x21
jne 0x4b6f53
mov dword [esi + 0x250], ecx
mov dword [esi + 0x38c], 0
mov dword [esi + 0x388], 1
mov eax, dword [esi + 0x4a4]
mov ebx, dword [esp + 0x14]
and ebp, 0xffff
mov dword [esi + 0x3f0], ebx
test al, 2
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x254], ebp
je 0x4b6f89
test al, 1
je 0x4b6f89
mov dword [esi + 0x378], 0x21
jmp 0x4b6f93
mov dword [esi + 0x378], 0x10
mov edx, dword [0xa4f188]
cmp ebx, edx
jl 0x4b6fe8
lea eax, [edx + 0x9c]
cmp ebx, eax
jge 0x4b6fe8
mov ecx, dword [0xa4f18c]
cmp edi, ecx
jl 0x4b6fee
lea eax, [ecx + 0x184]
cmp edi, eax
jge 0x4b6fee
sub edi, ecx
lea eax, [edi + edi*4]
shl eax, 3
sub eax, edi
shl eax, 2
sub eax, edx
mov edx, dword [0xa4f17c]
add eax, ebx
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
or ecx, 0x1000000
mov dword [eax], ecx
mov edx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
mov edi, dword [esi + 8]
cmp edi, edx
jl 0x4b8406
lea eax, [edx + 0x9c]
cmp edi, eax
jge 0x4b8406
mov eax, dword [esi + 0xc]
cmp eax, ecx
jl 0x4b8406
lea ebx, [ecx + 0x184]
cmp eax, ebx
jge 0x4b8406
cmp dword [esi + 0x250], 0xc
je 0x4b8406
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, edx
add eax, edi
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
lea eax, [eax + edx*8]
jmp 0x4b83fc
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7f34
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b7f34
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7f34
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7f34
jmp 0x4b7f0f
mov eax, dword [esp + 0x20]
and eax, 0xffff
cmp eax, 0x12
je 0x4b70ac
cmp eax, 0x19
jne 0x4b710b
mov ecx, dword [esi + 8]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7106
lea eax, [ebx + 0x9c]
cmp ecx, eax
jge 0x4b7106
mov eax, dword [esi + 0xc]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7106
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7106
cmp dword [esp + 0x24], 0xc
je 0x4b7106
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
or dword [eax], 0x800000
call fcn.004574c0
mov edx, dword [esp + 0x14]
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f0], edx
jmp 0x4b8406
mov ebp, 1
cmp si, bp
jb 0x4b78bc
cmp si, 0x3fff
ja 0x4b78bc
mov ebx, dword [0x6d620c]
lea eax, [esp + 0x1c]
and esi, 0xffff
push eax
mov ecx, 0x6d6208
mov dword [esp + 0x20], esi
call fcn.00409380
mov ecx, dword [0x6d620c]
mov dword [esp + 0x24], eax
cmp eax, ecx
je 0x4b7175
mov edx, dword [esp + 0x1c]
cmp edx, dword [eax + 0xc]
jb 0x4b7175
lea eax, [esp + 0x24]
jmp 0x4b717d
mov dword [esp + 0x44], ecx
lea eax, [esp + 0x44]
cmp dword [eax], ebx
je 0x4b8006
lea eax, [esp + 0x60]
lea ecx, [esp + 0x88]
push eax
push ecx
mov ecx, 0x6d6208
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0
call fcn.00408bd0
mov edx, eax
mov eax, dword [edx]
mov esi, dword [eax + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 0x250]
mov dword [esi + 0x1c], ebp
cmp eax, 5
mov dword [esi + 0x20], edx
je 0x4b8406
mov ebp, dword [esp + 0x20]
and ebp, 0xffff
mov dword [esp + 0x10], ebp
lea eax, [ebp - 1]
cmp eax, 0x20
ja case.0x4b71f1.5
xor ecx, ecx
mov cl, byte [eax + 0x4b84ec]
jmp dword [ecx*4 + 0x4b84d8]
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7251
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b7251
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7251
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7251
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov ebp, dword [esp + 0x14]
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f0], ebp
mov ebx, dword [0xa4f188]
cmp ebp, ebx
jl 0x4b72ba
lea edx, [ebx + 0x9c]
cmp ebp, edx
jge 0x4b72ba
mov ecx, dword [0xa4f18c]
cmp edi, ecx
jl 0x4b72c0
lea eax, [ecx + 0x184]
cmp edi, eax
jge 0x4b72c0
mov eax, edi
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, ebx
add eax, ebp
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
or ecx, 0x1000000
mov dword [eax], ecx
mov ebx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
mov eax, dword [esi + 0x250]
test eax, eax
je 0x4b72d4
cmp eax, 0x10
je 0x4b72d4
cmp eax, 0x21
jne 0x4b734f
mov eax, dword [esi + 0x3f0]
mov edx, dword [esi + 8]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jg 0x4b72fe
mov eax, dword [esi + 0x3f4]
mov edx, dword [esi + 0xc]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jle 0x4b734f
push 0x7dc
push 0
push edi
push ebp
push esi
call fcn.00458e10
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x340]
mov dword [esi + 0x488], ecx
mov ecx, dword [esi + 0x358]
mov dword [esi + 0x48c], edx
mov dword [esi + 0x480], eax
mov dword [esi + 0x484], ecx
mov word [esi + 0x80e], 0
mov ebx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
add esp, 0x14
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x250]
cmp eax, edx
jne 0x4b737a
mov eax, dword [esi + 0x254]
mov ecx, edx
push eax
push ecx
mov ecx, esi
call fcn.00476c30
mov ebx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
mov edx, dword [esi + 8]
cmp edx, ebx
jl 0x4b785f
lea eax, [ebx + 0x9c]
cmp edx, eax
jge 0x4b785f
mov eax, dword [esi + 0xc]
cmp eax, ecx
jl 0x4b785f
lea edi, [ecx + 0x184]
cmp eax, edi
jge 0x4b785f
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, ebx
add eax, edx
jmp 0x4b763c
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7421
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b7421
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7421
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b741d
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov ebp, dword [esp + 0x10]
mov eax, dword [esi + 0x250]
cmp eax, ebp
je 0x4b743f
test eax, eax
je 0x4b743f
mov dword [esi + 0x250], ebp
mov dword [esi + 0x38c], 0
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f0], ecx
mov edx, dword [0xa4f188]
cmp ecx, edx
jl 0x4b749e
lea eax, [edx + 0x9c]
cmp ecx, eax
jge 0x4b749e
mov eax, dword [0xa4f18c]
cmp edi, eax
jl 0x4b749e
lea ebx, [eax + 0x184]
cmp edi, ebx
jge 0x4b749e
sub edi, eax
lea eax, [edi + edi*4]
shl eax, 3
sub eax, edi
shl eax, 2
sub eax, edx
mov edx, dword [0xa4f17c]
add eax, ecx
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*8]
mov ecx, dword [edx + ecx*8]
or ecx, 0x1000000
mov dword [eax], ecx
cmp dword [esi + 0x250], ebp
jne 0x4b785f
push esi
call fcn.004524c0
add esp, 4
jmp 0x4b785f
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7511
lea eax, [ebx + 0x9c]
cmp ecx, eax
jge 0x4b7511
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7511
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7511
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov ebx, dword [esp + 0x14]
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f0], ebx
mov edx, dword [0xa4f188]
cmp ebx, edx
jl 0x4b757a
lea eax, [edx + 0x9c]
cmp ebx, eax
jge 0x4b757a
mov ecx, dword [0xa4f18c]
cmp edi, ecx
jl 0x4b7580
lea eax, [ecx + 0x184]
cmp edi, eax
jge 0x4b7580
mov eax, edi
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, edx
add eax, ebx
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
or ecx, 0x1000000
mov dword [eax], ecx
mov edx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
mov ebp, dword [esi + 0x250]
mov eax, 5
cmp ebp, eax
je 0x4b75f7
mov dword [esi + 0x250], eax
mov eax, dword [esi + 0xc]
xor ebp, ebp
cmp eax, edi
mov dword [esi + 0x38c], ebp
je 0x4b75eb
cmp dword [esi + 8], ebx
je 0x4b75eb
push 0x7dd
push ebp
push edi
push ebx
push esi
call fcn.00458e10
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x340]
mov dword [esi + 0x488], ecx
mov ecx, dword [esi + 0x358]
add esp, 0x14
mov dword [esi + 0x48c], edx
mov dword [esi + 0x480], eax
mov dword [esi + 0x484], ecx
mov word [esi + 0x80e], bp
mov edx, dword [0xa4f188]
mov ecx, dword [0xa4f18c]
mov edi, dword [esi + 8]
cmp edi, edx
jl 0x4b785f
lea eax, [edx + 0x9c]
cmp edi, eax
jge 0x4b785f
mov eax, dword [esi + 0xc]
cmp eax, ecx
jl 0x4b785f
lea ebx, [ecx + 0x184]
cmp eax, ebx
jge 0x4b785f
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
shl ecx, 2
mov eax, ecx
sub eax, edx
add eax, edi
lea edx, [eax + eax*2]
mov eax, dword [0xa4f17c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
or ecx, 0x800000
mov dword [eax], ecx
jmp 0x4b785f
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b76b0
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b76b0
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b76b0
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b76b0
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f0], ecx
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b770f
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b770f
mov edx, dword [0xa4f18c]
cmp edi, edx
jl 0x4b770f
lea eax, [edx + 0x184]
cmp edi, eax
jge 0x4b770f
mov eax, edi
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
mov edx, dword [0xa4f17c]
sub eax, ebx
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
or dword [eax], 0x1000000
mov edx, dword [esi + 0x250]
mov eax, 0x1f
cmp edx, eax
je 0x4b785f
mov dword [esi + 0x250], eax
mov eax, dword [esi + 0xc]
xor ebx, ebx
cmp eax, edi
mov dword [esi + 0x38c], ebx
je 0x4b785f
cmp dword [esi + 8], ecx
je 0x4b785f
push 0x7de
push ebx
push edi
push ecx
push esi
call fcn.00458e10
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x340]
mov dword [esi + 0x488], eax
mov eax, dword [esi + 0x358]
add esp, 0x14
mov dword [esi + 0x48c], ecx
mov dword [esi + 0x480], edx
mov dword [esi + 0x484], eax
mov word [esi + 0x80e], bx
jmp 0x4b785f
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b77e8
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b77e8
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b77e8
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b77e4
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f0], ecx
mov edx, dword [0xa4f188]
cmp ecx, edx
jl 0x4b7847
lea eax, [edx + 0x9c]
cmp ecx, eax
jge 0x4b7847
mov eax, dword [0xa4f18c]
cmp edi, eax
jl 0x4b7847
lea ebx, [eax + 0x184]
cmp edi, ebx
jge 0x4b7847
sub edi, eax
lea eax, [edi + edi*4]
shl eax, 3
sub eax, edi
shl eax, 2
sub eax, edx
mov edx, dword [0xa4f17c]
add eax, ecx
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*8]
mov ecx, dword [edx + ecx*8]
or ecx, 0x1000000
mov dword [eax], ecx
cmp dword [esi + 0x250], ebp
je 0x4b785f
mov dword [esi + 0x250], ebp
mov dword [esi + 0x38c], 0
mov eax, dword [esp + 0x20]
cmp ax, 0x1d
je 0x4b7873
cmp ax, 0x1e
jne 0x4b8406
mov eax, dword [esi + 0x58]
cmp eax, 1
je 0x4b8406
cmp eax, 2
jne 0x4b78b1
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x250]
cmp ecx, eax
je 0x4b78a2
mov dword [esi + 0x250], eax
mov dword [esi + 0x38c], 0
mov dword [esi + 0x254], 0
jmp 0x4b8406
cmp eax, 3
jne 0x4b8406
jmp 0x4b7884
cmp si, 0x4000
jb 0x4b7fa6
cmp si, 0x5fff
ja 0x4b7fa6
mov ebx, dword [0x6d620c]
lea eax, [esp + 0x1c]
and esi, 0xffff
push eax
mov ecx, 0x6d6208
mov dword [esp + 0x20], esi
call fcn.00409380
mov ecx, dword [0x6d620c]
mov dword [esp + 0x24], eax
cmp eax, ecx
je 0x4b790e
mov edx, dword [esp + 0x1c]
cmp edx, dword [eax + 0xc]
jb 0x4b790e
lea eax, [esp + 0x24]
jmp 0x4b7916
mov dword [esp + 0x40], ecx
lea eax, [esp + 0x40]
cmp dword [eax], ebx
jne 0x4b798b
mov eax, dword [0xa4f188]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jl 0x4b8406
add eax, 0x9c
cmp ecx, eax
jge 0x4b8406
mov eax, dword [0xa4f18c]
cmp edi, eax
jl 0x4b8406
add eax, 0x184
cmp edi, eax
jge 0x4b8406
mov eax, dword [esp + 0x20]
cmp ax, bp
je 0x4b8406
cmp ax, 5
je 0x4b8406
cmp ax, 6
je 0x4b8406
cmp ax, 0xf
je 0x4b8406
push esi
call fcn.00456100
add esp, 4
jmp 0x4b8406
lea eax, [esp + 0x48]
lea ecx, [esp + 0x78]
push eax
push ecx
mov ecx, 0x6d6208
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], 0
call fcn.00408bd0
mov edx, eax
mov eax, dword [edx]
mov esi, dword [eax + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 0x250]
mov dword [esi + 0x1c], ebp
cmp eax, 0xc
mov dword [esi + 0x20], edx
je 0x4b8406
mov ebp, dword [esp + 0x20]
and ebp, 0xffff
cmp ebp, 0x21
mov dword [esp + 0x10], ebp
ja case.0x4b79f1.5
xor eax, eax
mov al, byte [ebp + 0x4b8528]
jmp dword [eax*4 + 0x4b8510]
push esi
call fcn.00413f10
add esp, 4
test eax, eax
je 0x4b7a2e
cmp dword [esi + 0x250], 0xa
jne 0x4b7a19
push 0
push esi
call fcn.00455cb0
add esp, 8
mov eax, dword [esi + 0x250]
test eax, eax
jne 0x4b7a2e
push 1
push esi
call fcn.00455cb0
add esp, 8
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7a8b
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b7a8b
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7a8b
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7a87
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f0], ecx
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7aea
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b7aea
mov edx, dword [0xa4f18c]
cmp edi, edx
jl 0x4b7aea
lea eax, [edx + 0x184]
cmp edi, eax
jge 0x4b7aea
mov eax, edi
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
mov edx, dword [0xa4f17c]
sub eax, ebx
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
or dword [eax], 0x1000000
push 0x7df
push 1
push edi
push ecx
push esi
call fcn.00458e10
mov eax, dword [esi + 0x250]
add esp, 0x14
cmp eax, ebp
jne 0x4b7b15
mov eax, dword [esi + 0x254]
mov ecx, esi
push eax
push ebp
call fcn.00476c30
mov ecx, dword [esi + 8]
mov edi, dword [0xa4f188]
cmp ecx, edi
jl 0x4b8406
lea edx, [edi + 0x9c]
cmp ecx, edx
jge 0x4b8406
mov eax, dword [esi + 0xc]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b8406
lea ebx, [edx + 0x184]
cmp eax, ebx
jge 0x4b8406
cmp dword [esi + 0x250], 0x16
je 0x4b8406
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, edi
add eax, ecx
jmp 0x4b83f0
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7bd1
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b7bd1
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7bd1
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7bd1
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
cmp dword [esi + 0x250], 0x1d
jne 0x4b7f34
mov dword [esi + 0x38c], 0
jmp 0x4b7f34
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7c46
lea eax, [ebx + 0x9c]
cmp ecx, eax
jge 0x4b7c46
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7c46
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7c46
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov eax, dword [esp + 0x14]
push 0x7e0
push 1
push edi
push eax
push esi
mov dword [esi + 0x3f0], eax
mov dword [esi + 0x3f4], edi
call fcn.00458e10
mov ecx, dword [esi + 0x3f0]
mov edx, dword [0xa4f188]
add esp, 0x14
cmp ecx, edx
jl 0x4b8406
lea eax, [edx + 0x9c]
cmp ecx, eax
jge 0x4b8406
mov eax, dword [esi + 0x3f4]
mov esi, dword [0xa4f18c]
cmp eax, esi
jl 0x4b8406
lea edi, [esi + 0x184]
cmp eax, edi
jge 0x4b8406
sub eax, esi
lea esi, [eax + eax*4]
shl esi, 3
sub esi, eax
shl esi, 2
mov eax, esi
jmp 0x4b7f88
mov eax, dword [esi + 0x258]
xor ecx, ecx
and eax, 0x800
mov dword [esi + 0x3f8], edi
or eax, ecx
je 0x4b7dae
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7d34
lea eax, [ebx + 0x9c]
cmp ecx, eax
jge 0x4b7d34
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7d34
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7d34
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov edx, dword [esp + 0x14]
push 0x7e2
push 1
push edi
push edx
push esi
mov dword [esi + 0x3f0], edi
call fcn.00458e10
push esi
call fcn.00452920
mov ecx, dword [esi + 0x3f0]
mov edx, dword [0xa4f188]
add esp, 0x18
cmp ecx, edx
jl 0x4b8406
lea eax, [edx + 0x9c]
cmp ecx, eax
jge 0x4b8406
mov eax, dword [esi + 0x3f4]
mov esi, dword [0xa4f18c]
cmp eax, esi
jl 0x4b8406
lea edi, [esi + 0x184]
cmp eax, edi
jge 0x4b8406
sub eax, esi
lea esi, [eax + eax*4]
shl esi, 3
sub esi, eax
shl esi, 2
mov eax, esi
jmp 0x4b7f88
push 0
push 1
mov ecx, esi
call fcn.00451ca0
push 8
call fcn.00613321
mov ebx, eax
mov eax, dword [esi + 8]
push 0xc
mov dword [ebx], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov ebp, dword [esi + 0x3c4]
mov edx, dword [ebp + 4]
mov dword [esp + 0x2c], edx
call fcn.00613321
add esp, 8
mov ecx, ebp
test ebp, ebp
jne 0x4b7dec
mov ecx, eax
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x4b7df8
mov ecx, eax
mov dword [eax + 4], ecx
mov dword [ebp + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
add eax, 8
test eax, eax
je 0x4b7e0c
mov dword [eax], ebx
mov ebx, dword [esi + 0x3c8]
push 8
inc ebx
mov dword [esi + 0x3c8], ebx
call fcn.00613321
mov edx, dword [esp + 0x18]
mov ebp, eax
push 0xc
mov dword [ebp], edx
mov dword [ebp + 4], edi
mov edi, dword [esi + 0x3c4]
mov ebx, dword [edi + 4]
call fcn.00613321
add esp, 8
mov ecx, edi
test edi, edi
jne 0x4b7e47
mov ecx, eax
test ebx, ebx
mov dword [eax], ecx
jne 0x4b7e4f
mov ebx, eax
mov dword [eax + 4], ebx
mov dword [edi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
add eax, 8
test eax, eax
je 0x4b7e63
mov dword [eax], ebp
mov eax, dword [esi + 0x3c8]
push 2
inc eax
push 0
push esi
mov dword [esi + 0x3c8], eax
call fcn.00451e80
add esp, 0xc
test eax, eax
je 0x4b8406
mov edx, dword [esi + 0x3f8]
mov eax, 1
mov dword [esi + 0x410], eax
mov dword [esi + 0x250], eax
mov dword [esi + 0x388], eax
mov eax, dword [esi + 0x3fc]
mov dword [esi + 0x378], 0
mov dword [esi + 0x37c], edx
mov dword [esi + 0x380], eax
jmp 0x4b8406
push esi
call fcn.00413f10
add esp, 4
test eax, eax
je case.0x4b79f1.5
push 0
push esi
call fcn.00455cb0
add esp, 8
mov ecx, dword [esi + 0x3f0]
mov ebx, dword [0xa4f188]
cmp ecx, ebx
jl 0x4b7f34
lea edx, [ebx + 0x9c]
cmp ecx, edx
jge 0x4b7f34
mov eax, dword [esi + 0x3f4]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b7f34
lea ebp, [edx + 0x184]
cmp eax, ebp
jge 0x4b7f34
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ebx
add eax, ecx
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
and dword [eax], 0xfeffffff
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f0], ecx
mov edx, dword [0xa4f188]
cmp ecx, edx
jl 0x4b8406
lea eax, [edx + 0x9c]
cmp ecx, eax
jge 0x4b8406
mov eax, dword [0xa4f18c]
cmp edi, eax
jl 0x4b8406
lea esi, [eax + 0x184]
cmp edi, esi
jge 0x4b8406
sub edi, eax
lea eax, [edi + edi*4]
shl eax, 3
sub eax, edi
shl eax, 2
sub eax, edx
add eax, ecx
mov edx, dword [0xa4f17c]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*8]
mov ecx, dword [edx + ecx*8]
or ecx, 0x1000000
jmp 0x4b8404
cmp si, 0xa000
jb 0x4b81ed
cmp si, 0xdfff
ja 0x4b81ed
mov ebx, dword [0x6d620c]
lea eax, [esp + 0x1c]
and esi, 0xffff
push eax
mov ecx, 0x6d6208
mov dword [esp + 0x20], esi
call fcn.00409380
mov ecx, dword [0x6d620c]
mov dword [esp + 0x24], eax
cmp eax, ecx
je 0x4b7ffa
mov edx, dword [esp + 0x1c]
mov ebp, dword [eax + 0xc]
cmp edx, ebp
jb 0x4b7ffa
lea eax, [esp + 0x24]
jmp 0x4b8002
mov dword [esp + 0x38], ecx
lea eax, [esp + 0x38]
cmp dword [eax], ebx
jne 0x4b804c
mov eax, dword [0xa4f188]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jl 0x4b8406
add eax, 0x9c
cmp ecx, eax
jge 0x4b8406
mov eax, dword [0xa4f18c]
cmp edi, eax
jl 0x4b8406
add eax, 0x184
cmp edi, eax
jge 0x4b8406
push esi
call fcn.00456100
add esp, 4
jmp 0x4b8406
lea eax, [esp + 0x58]
lea ecx, [esp + 0x80]
push eax
push ecx
mov ecx, 0x6d6208
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], 0
call fcn.00408bd0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov esi, dword [eax + 0x10]
mov dword [esp + 0x28], ecx
mov ecx, dword [0xa4f188]
mov dword [0xced980], esi
mov ebp, dword [esi + 8]
cmp ebp, ecx
jl 0x4b80ee
lea edx, [ecx + 0x9c]
cmp ebp, edx
jge 0x4b80ee
mov eax, dword [esi + 0xc]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b80f4
lea ebx, [edx + 0x184]
cmp eax, ebx
jge 0x4b80f4
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ecx
mov ecx, dword [0xa4f17c]
add eax, ebp
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
and ecx, 0xfeffffff
mov dword [eax], ecx
mov ecx, dword [0xa4f188]
mov edx, dword [0xa4f18c]
mov esi, dword [0xced980]
jmp 0x4b80f4
mov edx, dword [0xa4f18c]
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 8]
cmp eax, ebx
jne 0x4b8104
cmp dword [esi + 0xc], edi
je 0x4b8159
push esi
call fcn.00455e10
mov edx, dword [0xced980]
mov dword [edx + 8], ebx
mov eax, dword [0xced980]
mov dword [eax + 0xc], edi
mov ecx, dword [0xced980]
mov edx, dword [0xa4f188]
mov dword [ecx + 0x10], edx
mov eax, dword [0xced980]
mov ecx, dword [0xa4f18c]
mov dword [eax + 0x14], ecx
mov edx, dword [0xced980]
push edx
call fcn.00455af0
mov ecx, dword [0xa4f188]
mov edx, dword [0xa4f18c]
mov esi, dword [0xced980]
add esp, 8
mov edi, dword [esi + 8]
cmp edi, ecx
jl 0x4b81b6
lea eax, [ecx + 0x9c]
cmp edi, eax
jge 0x4b81b6
mov eax, dword [esi + 0xc]
cmp eax, edx
jl 0x4b81b6
lea ebx, [edx + 0x184]
cmp eax, ebx
jge 0x4b81b6
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ecx
mov ecx, dword [0xa4f17c]
add eax, edi
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
or ecx, 0x1000000
mov dword [eax], ecx
mov ecx, dword [0xa4f188]
mov edx, dword [0xa4f18c]
mov esi, dword [0xced980]
mov edi, dword [esi + 8]
cmp edi, ecx
jl 0x4b8406
lea eax, [ecx + 0x9c]
cmp edi, eax
jge 0x4b8406
mov eax, dword [esi + 0xc]
cmp eax, edx
jl 0x4b8406
lea esi, [edx + 0x184]
cmp eax, esi
jge 0x4b8406
jmp 0x4b83dd
cmp si, 0xe000
jb 0x4b8406
cmp si, 0xffff
ja 0x4b8406
mov ebx, dword [0x6d620c]
lea edx, [esp + 0x1c]
and esi, 0xffff
push edx
mov ecx, 0x6d6208
mov dword [esp + 0x20], esi
call fcn.00409380
mov ecx, dword [0x6d620c]
mov dword [esp + 0x24], eax
cmp eax, ecx
je 0x4b8241
mov edx, dword [esp + 0x1c]
mov ebp, dword [eax + 0xc]
cmp edx, ebp
jb 0x4b8241
lea eax, [esp + 0x24]
jmp 0x4b8249
mov dword [esp + 0x34], ecx
lea eax, [esp + 0x34]
cmp dword [eax], ebx
je 0x4b8006
lea eax, [esp + 0x68]
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, 0x6d6208
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], 0
call fcn.00408bd0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov esi, dword [eax + 0x10]
mov dword [esp + 0x28], ecx
mov ecx, dword [0xa4f188]
mov dword [0xced140], esi
mov ebp, dword [esi + 8]
cmp ebp, ecx
jl 0x4b82f3
lea edx, [ecx + 0x9c]
cmp ebp, edx
jge 0x4b82f3
mov eax, dword [esi + 0xc]
mov edx, dword [0xa4f18c]
cmp eax, edx
jl 0x4b82f9
lea ebx, [edx + 0x184]
cmp eax, ebx
jge 0x4b82f9
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ecx
mov ecx, dword [0xa4f17c]
add eax, ebp
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
and ecx, 0xfeffffff
mov dword [eax], ecx
mov ecx, dword [0xa4f188]
mov edx, dword [0xa4f18c]
mov esi, dword [0xced140]
jmp 0x4b82f9
mov edx, dword [0xa4f18c]
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 8]
cmp eax, ebx
jne 0x4b8309
cmp dword [esi + 0xc], edi
je 0x4b835e
push esi
call fcn.00455e10
mov edx, dword [0xced140]
mov dword [edx + 8], ebx
mov eax, dword [0xced140]
mov dword [eax + 0xc], edi
mov ecx, dword [0xced140]
mov edx, dword [0xa4f188]
mov dword [ecx + 0x10], edx
mov eax, dword [0xced140]
mov ecx, dword [0xa4f18c]
mov dword [eax + 0x14], ecx
mov edx, dword [0xced140]
push edx
call fcn.00455af0
mov ecx, dword [0xa4f188]
mov edx, dword [0xa4f18c]
mov esi, dword [0xced140]
add esp, 8
mov edi, dword [esi + 8]
cmp edi, ecx
jl 0x4b83bb
lea eax, [ecx + 0x9c]
cmp edi, eax
jge 0x4b83bb
mov eax, dword [esi + 0xc]
cmp eax, edx
jl 0x4b83bb
lea ebx, [edx + 0x184]
cmp eax, ebx
jge 0x4b83bb
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ecx
mov ecx, dword [0xa4f17c]
add eax, edi
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
or ecx, 0x1000000
mov dword [eax], ecx
mov ecx, dword [0xa4f188]
mov edx, dword [0xa4f18c]
mov esi, dword [0xced140]
mov edi, dword [esi + 8]
cmp edi, ecx
jl 0x4b8406
lea eax, [ecx + 0x9c]
cmp edi, eax
jge 0x4b8406
mov eax, dword [esi + 0xc]
cmp eax, edx
jl 0x4b8406
lea esi, [edx + 0x184]
cmp eax, esi
jge 0x4b8406
sub eax, edx
lea edx, [eax + eax*4]
shl edx, 3
sub edx, eax
shl edx, 2
mov eax, edx
sub eax, ecx
add eax, edi
mov ecx, dword [0xa4f17c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
or ecx, 0x800000
mov dword [eax], ecx
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x30]
inc ebp
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x30], ebp
shr edx, 3
cmp ebp, edx
jb 0x4b6365
cmp byte [0xa59234], 1
jne 0x4b8459
call fcn.005a44e0
sub eax, dword [0xa591fc]
test eax, eax
jg 0x4b8445
cmp dword [0x6d71d8], 0x31
jbe 0x4b8459
call fcn.004561a0
call fcn.005a44e0
add eax, 0x3e8
mov dword [0xa591fc], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret