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

Disassembly:
push 0xffffffffffffffff
push 0x52da3e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x290
push ebx
push ebp
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x4c], ebx
mov esi, dword [esp + 0x2b0]
xor edi, edi
mov ecx, esi
mov dword [esp + 0x2a8], edi
call fcn.00497ad0
test ax, ax
je case.0x4caa91.11
mov ecx, dword [ebx + 0x60]
call fcn.00500ee0
cmp eax, 0x15
jne 0x4caa77
mov al, byte [esp + 0x1b]
mov dword [esp + 0x2c], edi
mov byte [esp + 0x1c], al
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a8], 1
call fcn.0048a5e0
mov ecx, esi
mov byte [esp + 0x2a8], 2
call fcn.00497ad0
mov ebp, dword [ebx + 0x2014]
mov cl, byte [esp + 0x1b]
movsx eax, ax
mov dword [esp + 0x60], eax
add ebp, 3
mov byte [esp + 0x30], cl
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
xor ebx, ebx
cmp eax, edi
mov byte [esp + 0x2a8], 3
jle 0x4ca4bc
jmp 0x4ca46b
mov esi, dword [esp + 0x2b0]
xor edi, edi
push ebx
mov ecx, esi
call fcn.00497a10
mov ecx, dword [eax + 4]
cmp ecx, edi
je 0x4ca482
mov edi, dword [eax + 8]
sub edi, ecx
sar edi, 2
xor esi, esi
test edi, edi
jle 0x4ca4b1
mov ecx, dword [esp + 0x2b0]
push ebx
call fcn.00497a10
mov eax, dword [eax + 4]
lea ecx, [esp + 0x1c]
lea edx, [eax + esi*4]
mov eax, dword [esp + 0x24]
push edx
push 1
push eax
call fcn.00405d10
inc esi
cmp esi, edi
jl 0x4ca488
mov eax, dword [esp + 0x60]
inc ebx
cmp ebx, eax
jl 0x4ca462
xor edi, edi
mov ecx, dword [esp + 0x20]
cmp ecx, edi
jne 0x4ca4c8
xor eax, eax
jmp 0x4ca4d1
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.0048ab50
movsx ecx, ax
cmp ecx, ebp
jle 0x4ca672
mov ecx, dword [esp + 0x20]
cmp ecx, edi
jne 0x4ca4f1
xor eax, eax
jmp 0x4ca4fa
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
push ebp
lea ecx, [ecx + eax*4 - 4]
call fcn.0048a9e0
cmp al, 0x7f
jne 0x4ca672
xor ebx, ebx
lea ecx, [esp + 0x14]
push ebx
call fcn.0048a610
mov byte [esp + 0x2a8], 4
mov esi, ebp
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
jne 0x4ca52e
xor eax, eax
jmp 0x4ca537
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.0048ab50
movsx edx, ax
cmp esi, edx
jge 0x4ca573
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
jne 0x4ca553
xor eax, eax
jmp 0x4ca55c
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
push esi
lea ecx, [ecx + eax*4 - 4]
call fcn.0048a9e0
push eax
lea ecx, [esp + 0x18]
call fcn.0048aa50
inc esi
jmp 0x4ca522
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.00415780
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00405f70
lea edx, [esp + 0x14]
lea ecx, [esp + 0x1c]
push edx
push 1
push esi
mov dword [esp + 0x30], esi
call fcn.00405d10
lea ecx, [esp + 0x14]
call fcn.0048ab50
mov esi, dword [esp + 0x2b0]
mov ebp, eax
mov ecx, esi
call fcn.00497af0
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call fcn.00497860
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 3
call fcn.0048a720
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 2
mov edi, eax
je 0x4ca60b
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4ca5f8
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 1
call fcn.0048a720
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4ca658
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4ca645
mov esi, dword [esp + 0x20]
push esi
call fcn.00514120
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x4cadf2
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cmp eax, ebx
je 0x4ca6c8
mov edx, ecx
sub edx, eax
sar edx, 2
cmp esi, edx
jae 0x4ca6c8
lea ecx, [eax + esi*4]
call fcn.0048ab50
movsx eax, ax
cmp eax, ebp
jle 0x4ca6ad
mov ecx, dword [esp + 0x20]
push ebp
lea ecx, [ecx + esi*4]
call fcn.0048a9e0
cmp al, 0x7f
je 0x4ca6c5
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
lea eax, [edx + esi*4]
push eax
push 1
push ecx
lea ecx, [esp + 0x3c]
call fcn.00405d10
inc esi
jmp 0x4ca676
mov edx, dword [esp + 0x34]
cmp edx, ebx
jne 0x4ca6d4
xor ebp, ebp
jmp 0x4ca6dd
mov ebp, dword [esp + 0x38]
sub ebp, edx
sar ebp, 2
push eax
push ecx
push ecx
call fcn.00415780
mov edx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x1c]
push edx
push esi
call fcn.00405f70
xor edi, edi
cmp ebp, ebx
mov dword [esp + 0x24], esi
jle 0x4ca893
mov eax, dword [esp + 0x4c]
push ebx
lea ecx, [esp + 0x44]
mov esi, dword [eax + 0x2014]
call fcn.0048a610
mov ecx, dword [esp + 0x34]
push 3
mov byte [esp + 0x2ac], 5
lea ecx, [ecx + edi*4]
call fcn.0048a9e0
test al, 0xf
jne 0x4ca826
cmp edi, ebx
jne 0x4ca745
add esi, 3
jmp 0x4ca826
mov ecx, dword [esp + 0x20]
add esi, 4
cmp ecx, ebx
jne 0x4ca754
xor eax, eax
jmp 0x4ca75d
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea edx, [ecx + eax*4 - 4]
lea ecx, [esp + 0x14]
push edx
call fcn.0048a5f0
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2ac], 6
call fcn.0048a610
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 7
xor ebx, ebx
call fcn.0048ab50
movsx eax, ax
dec eax
test eax, eax
jle 0x4ca7bf
push ebx
lea ecx, [esp + 0x18]
call fcn.0048a9e0
push eax
lea ecx, [esp + 0x4c]
call fcn.0048aa50
lea ecx, [esp + 0x14]
inc ebx
call fcn.0048ab50
movsx ecx, ax
dec ecx
cmp ebx, ecx
jl 0x4ca799
mov ecx, dword [esp + 0x24]
lea eax, [ecx - 4]
push eax
add eax, 4
push ecx
push eax
call fcn.00415780
mov eax, dword [esp + 0x30]
add esp, 0xc
lea ecx, [esp + 0x1c]
push eax
add eax, 0xfffffffc
push eax
call fcn.00405f70
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x48]
sub eax, 4
push edx
push 1
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x30], eax
call fcn.00405d10
lea ecx, [esp + 0x48]
mov byte [esp + 0x2a8], 6
call fcn.0048a720
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 5
call fcn.0048a720
xor ebx, ebx
mov eax, dword [esp + 0x34]
lea ecx, [eax + edi*4]
call fcn.0048ab50
movsx ecx, ax
cmp esi, ecx
jge 0x4ca864
mov edx, dword [esp + 0x34]
push esi
lea ecx, [edx + edi*4]
call fcn.0048a9e0
push eax
lea ecx, [esp + 0x44]
call fcn.0048aa50
mov eax, dword [esp + 0x34]
inc esi
lea ecx, [eax + edi*4]
call fcn.0048ab50
movsx ecx, ax
cmp esi, ecx
jl 0x4ca839
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x40]
push edx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00405d10
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 3
call fcn.0048a720
inc edi
cmp edi, ebp
jl 0x4ca707
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
push ecx
push eax
push eax
call fcn.00415780
mov edx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x30]
push edx
push esi
call fcn.00405f70
mov eax, dword [esp + 0x20]
mov edx, esi
cmp eax, ebx
mov dword [esp + 0x38], edx
je 0x4caa6e
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
je 0x4caa6e
mov ebx, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x2c]
xor edi, edi
xor esi, esi
test eax, eax
je 0x4ca98b
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jae 0x4ca98b
cmp bl, 0xff
lea ecx, [eax + esi*4]
jne 0x4ca920
call fcn.0048ab50
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
add ebp, eax
lea eax, [edx + esi*4]
push eax
push 1
push ecx
jmp 0x4ca974
call fcn.0048ab50
test ax, ax
jle 0x4ca97d
mov edx, dword [esp + 0x20]
push 0
lea ecx, [edx + esi*4]
call fcn.0048a9e0
mov ecx, ebx
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x4ca953
mov edi, 1
jmp 0x4ca957
test edi, edi
je 0x4ca97d
mov edx, dword [esp + 0x20]
lea ecx, [edx + esi*4]
call fcn.0048ab50
mov edx, dword [esp + 0x38]
add ebp, eax
mov eax, dword [esp + 0x20]
lea ecx, [eax + esi*4]
push ecx
push 1
push edx
lea ecx, [esp + 0x3c]
call fcn.00405d10
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
inc esi
jmp 0x4ca8e7
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x4ca9b8
sub edx, ecx
sar edx, 2
je 0x4ca9b8
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.00497af0
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.00497860
mov eax, dword [esp + 0x20]
xor ebx, ebx
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.00415780
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00405f70
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x34]
mov byte [esp + 0x2a8], 2
cmp esi, eax
mov edi, eax
je 0x4caa07
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4ca9f4
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 1
call fcn.0048a720
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4caa54
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4caa41
mov esi, dword [esp + 0x20]
push esi
call fcn.00514120
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x4cadf2
mov ebp, dword [esp + 0x2c]
jmp 0x4ca9ba
mov ecx, dword [ebx + 0x60]
call fcn.004d0720
dec eax
cmp eax, 0x27
ja case.0x4caa91.11
xor edx, edx
mov dl, byte [eax + 0x4cc468]
jmp dword [edx*4 + 0x4cc43c]
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.00497a20
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 8
call fcn.0048ab50
push eax
lea ecx, [esp + 0xa4]
push edi
push ecx
lea ecx, [esp + 0x20]
call fcn.0048ab80
mov al, byte [esp + 0xa0]
cmp al, 0x80
jne 0x4caaff
movzx bx, byte [esp + 0xa3]
mov ebp, dword [esp + 0x2cc]
mov ecx, ebx
and ecx, 0xffff
lea esi, [esp + 0xa4]
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x4cab73
jbe 0x4cab1d
xor bx, bx
lea esi, [esp + 0xa3]
mov bl, al
sub ebx, 0x80
mov ecx, ebx
and ecx, 0xffff
jmp 0x4cab61
test al, al
jne 0x4cab4d
movzx bx, byte [esp + 0xa1]
mov ebp, dword [esp + 0x2cc]
mov ecx, ebx
and ecx, 0xffff
lea esi, [esp + 0xa2]
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x4cab73
xor bx, bx
lea esi, [esp + 0xa1]
mov bl, al
mov ecx, ebx
and ecx, 0xffff
mov ebp, dword [esp + 0x2cc]
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x1b]
xor edi, edi
mov byte [esp + 0x30], cl
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
push edi
push edi
push edi
mov byte [esp + 0x2b4], 9
call fcn.00415780
mov edx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x30]
push edx
push esi
call fcn.00405f70
push ebx
push ebp
lea ecx, [esp + 0x80]
mov dword [esp + 0x40], esi
call fcn.0048a680
push eax
mov eax, dword [esp + 0x3c]
push 1
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2b4], 0xa
call fcn.00405d10
lea ecx, [esp + 0x78]
mov byte [esp + 0x2a8], 9
call fcn.0048a720
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.00497af0
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call fcn.00497860
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 8
mov ebp, eax
je 0x4cac31
push edi
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, ebp
jne 0x4cac1e
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0
call fcn.0048a720
jmp 0x4cbf55
push edi
mov ecx, esi
call fcn.00497a10
mov ecx, dword [eax + 4]
cmp ecx, edi
jne 0x4cac71
mov dword [esp + 0x48], edi
jmp 0x4cac7d
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x48], eax
mov dl, byte [esp + 0x1b]
mov dword [esp + 0x54], 0
mov byte [esp + 0x50], dl
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x48]
xor ebp, ebp
xor ebx, ebx
mov byte [esp + 0x2a8], 0xb
test eax, eax
jle 0x4cade8
mov esi, dword [esp + 0x2b0]
push 0
mov ecx, esi
call fcn.00497a10
mov eax, dword [eax + 4]
lea ecx, [esp + 0x14]
lea eax, [eax + ebx*4]
push eax
call fcn.0048a5f0
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xc
mov edi, dword [esi + 0x2014]
call fcn.0048ab50
mov bp, ax
mov ecx, esi
sub ebp, edi
call fcn.004c1810
mov esi, dword [esi + 0x2014]
xor cx, cx
mov cl, al
lea edx, [esp + 0x1a0]
sub ebp, ecx
lea ecx, [esp + 0x14]
push ebp
push esi
push edx
call fcn.0048ab80
call fcn.004a1d60
test al, al
je 0x4cad43
mov edi, dword [esp + 0x2cc]
mov ecx, 0xc
lea esi, [esp + 0x1a0]
mov ebp, 0x32
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x4cad67
mov edi, dword [esp + 0x2cc]
mov ecx, ebp
and ecx, 0xffff
lea esi, [esp + 0x1a0]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x2cc]
push ebp
push ecx
lea ecx, [esp + 0x48]
call fcn.0048a680
push ecx
lea edx, [esp + 0x44]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x2b0], 0xd
call fcn.0048a5f0
mov esi, dword [esp + 0x2b4]
push ebx
push 0
mov ecx, esi
mov byte [esp + 0x2b4], 0xd
call fcn.00497a10
mov ecx, eax
call fcn.00405cb0
mov ecx, eax
call fcn.0048a8d0
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0xc
call fcn.0048a720
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xb
call fcn.0048a720
mov eax, dword [esp + 0x48]
inc ebx
cmp ebx, eax
jl 0x4cacbc
push 0
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.004961b0
mov ax, bp
jmp 0x4cb593
mov ecx, dword [esp + 0x2b0]
lea eax, [esp + 0x14]
push eax
call fcn.00497a20
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xf
call fcn.0048ab50
push eax
lea ecx, [esp + 0xa4]
push 0
push ecx
lea ecx, [esp + 0x20]
call fcn.0048ab80
mov dl, byte [esp + 0xa0]
xor ax, ax
shr dl, 4
mov al, dl
mov edi, dword [esp + 0x2cc]
mov ecx, eax
lea esi, [esp + 0xa3]
and ecx, 0xffff
mov byte [esp + 0x2a8], 0
sub ecx, 3
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [eax - 3]
lea ecx, [esp + 0x14]
jmp 0x4cc253
mov ecx, esi
call fcn.00497ad0
mov edi, eax
mov al, byte [esp + 0x1b]
xor ebp, ebp
mov byte [esp + 0x1c], al
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a8], 0x10
call fcn.0048a5e0
mov cl, byte [esp + 0x1b]
mov dword [esp + 0x34], ebp
mov byte [esp + 0x30], cl
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov ecx, dword [ebx + 0x60]
mov byte [esp + 0x2a8], 0x12
mov dword [esp + 0x40], ebp
mov byte [esp + 0x2c], 4
call fcn.004d0720
cmp eax, 5
jne 0x4caef9
mov byte [esp + 0x2c], al
jmp 0x4caf18
mov ecx, dword [ebx + 0x60]
call fcn.004d0720
cmp eax, 6
je 0x4caf13
mov ecx, dword [ebx + 0x60]
call fcn.004d0720
cmp eax, 7
jne 0x4caf18
mov byte [esp + 0x2c], 6
mov ecx, dword [ebx + 0x60]
call fcn.004d0720
cmp eax, 9
je 0x4caf3b
mov ecx, dword [ebx + 0x60]
call fcn.004d0720
cmp eax, 8
jne 0x4cafac
mov esi, dword [esp + 0x2b0]
xor ebp, ebp
lea ebx, [edi - 1]
mov ecx, esi
push ebx
call fcn.00497a10
mov ecx, dword [eax + 4]
cmp ecx, ebp
jne 0x4caf51
xor eax, eax
jmp 0x4caf59
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov ebp, eax
xor esi, esi
and ebp, 0xffff
mov dword [esp + 0x48], esi
jle 0x4cafac
mov ecx, dword [esp + 0x2b0]
push esi
push ebx
call fcn.00497a10
mov ecx, eax
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
push 1
lea ecx, [esp + 0x14]
call fcn.0048a9e0
cmp al, 5
je 0x4cb0f1
inc esi
cmp esi, ebp
jl 0x4caf69
lea ecx, [esp + 0x64]
call fcn.00496190
mov dl, byte [esp + 0x2b4]
sub esp, 0x10
mov esi, esp
lea ecx, [esp + 0x2c4]
mov byte [esp + 0x2b8], 0x17
mov dword [esp + 0x54], esp
mov byte [esi], dl
call fcn.004e26e0
xor ebx, ebx
cmp eax, ebx
jge 0x4cafe3
xor eax, eax
shl eax, 3
push eax
call fcn.00514b36
add esp, 4
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c8]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00497390
lea ecx, [esp + 0x74]
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
call fcn.004961f0
mov ebp, dword [esp + 0x2b0]
mov al, byte [esp + 0x2c8]
sub esp, 0x10
lea edx, [esp + 0x74]
mov dword [esp + 0x54], esp
mov ecx, esp
push edx
mov byte [esp + 0x88], al
lea esi, [ebp + 0x10]
call fcn.00415300
mov ecx, esi
call fcn.004961f0
mov al, byte [esp + 0x74]
lea ecx, [esp + 0x2b4]
mov byte [esi + 0x10], al
call fcn.00496d20
cmp di, bx
jne 0x4cb4cb
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.004961b0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x4cb09f
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4cb08c
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0048a720
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4cb564
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4cb0dd
jmp 0x4cb560
mov edx, dword [esp + 0x2c4]
mov edi, dword [esp + 0x2b0]
xor ebp, ebp
xor esi, esi
mov dword [edx], 1
mov dword [esp + 0x2c], esi
push ebx
mov ecx, edi
call fcn.00497a10
mov ecx, dword [eax + 4]
cmp ecx, ebp
je 0x4cb1fb
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x4cb1fb
push esi
push ebx
mov ecx, edi
call fcn.00497a10
mov ecx, eax
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
push 1
lea ecx, [esp + 0x14]
call fcn.0048a9e0
cmp al, 5
je 0x4cb1f1
mov edi, dword [esp + 0x2b0]
push ebx
mov ecx, edi
call fcn.00497a10
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x2c]
push ebx
lea esi, [ecx + edx*4]
mov ecx, edi
call fcn.00497a10
mov edi, eax
add esi, 4
mov ebp, dword [edi + 8]
cmp esi, ebp
je 0x4cb1c5
lea eax, [esi - 4]
mov dword [esp + 0x14], eax
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push esi
call fcn.0048a5f0
mov ecx, dword [esp + 0x18]
call fcn.0048a8d0
mov ecx, dword [esp + 0x14]
add esi, 4
add ecx, 4
cmp esi, ebp
mov dword [esp + 0x14], ecx
jne 0x4cb19d
mov eax, dword [edi + 8]
mov ecx, edi
push eax
add eax, 0xfffffffc
push eax
call fcn.00405f70
mov ecx, dword [edi + 8]
mov eax, dword [esp + 0x2c]
add ecx, 0xfffffffc
dec eax
mov dword [edi + 8], ecx
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x2c], eax
mov esi, eax
xor ebp, ebp
inc esi
mov dword [esp + 0x2c], esi
jmp 0x4cb10d
push ebx
mov ecx, edi
call fcn.00497a10
mov ecx, dword [eax + 4]
cmp ecx, ebp
jne 0x4cb20e
xor esi, esi
jmp 0x4cb216
mov esi, dword [eax + 8]
sub esi, ecx
sar esi, 2
lea ecx, [esp + 0x7c]
call fcn.004974f0
mov cl, byte [esp + 0x1b]
mov dword [esp + 0x54], ebp
mov byte [esp + 0x50], cl
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
and esi, 0xffff
mov byte [esp + 0x2a8], 0x14
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], esi
jle 0x4cb344
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2b0]
push edx
push ebx
call fcn.00497a10
mov ecx, eax
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x1a0]
push 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x14]
stosb byte es:[edi], al
call fcn.0048a9e0
and eax, 0xff
lea ecx, [esp + 0x1a0]
mov ebp, eax
mov eax, dword [esp + 0x4c]
push ebp
mov eax, dword [eax + 0x2014]
dec eax
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.0048ab80
mov eax, dword [esp + 0x2cc]
test eax, eax
je 0x4cb2e5
mov ecx, ebp
lea esi, [esp + 0x1a0]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x1a0]
push ebp
push eax
lea ecx, [esp + 0x48]
call fcn.0048a680
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x40]
push ecx
push 1
push edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2b4], 0x15
call fcn.00405d10
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0x40]
add esi, ebp
mov byte [esp + 0x2a8], 0x14
mov dword [esp + 0x48], esi
call fcn.0048a720
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x4cb24f
lea eax, [esp + 0x50]
lea ecx, [esp + 0x7c]
push eax
call fcn.00497860
mov cl, byte [esp + 0x7c]
sub esp, 0x24
mov esi, esp
mov dword [esp + 0x68], esp
mov dword [esp + 0x68], esi
mov byte [esi], cl
lea ecx, [esp + 0xa0]
call fcn.00495de0
xor ebx, ebx
cmp eax, ebx
jge 0x4cb379
xor eax, eax
shl eax, 4
push eax
call fcn.00514b36
add esp, 4
mov dword [esi + 4], eax
mov edx, dword [esp + 0xa8]
mov ecx, esi
push eax
mov eax, dword [esp + 0xa8]
push edx
push eax
call fcn.00495e00
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x2cc], 0x16
push ecx
lea ecx, [esi + 0x10]
call fcn.0048bd10
mov ecx, dword [esp + 0x2d4]
mov byte [esp + 0x2cc], 0x14
call fcn.004976a0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
cmp esi, eax
mov byte [esp + 0x2a8], 0x13
mov edi, eax
je 0x4cb3fb
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4cb3e8
mov esi, dword [esp + 0x54]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x7c]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x2a8], 0x12
call fcn.004975f0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x4cb448
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4cb435
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0048a720
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4cb495
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4cb482
mov esi, dword [esp + 0x20]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2a8], 0xffffffff
call fcn.004961b0
mov ax, word [esp + 0x48]
jmp 0x4cb593
cmp ax, 1
jbe 0x4cb5ae
cmp di, 1
jae 0x4cb5ae
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.004961b0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x4cb517
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4cb504
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0048a720
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4cb564
push ebx
mov ecx, esi
call fcn.004061f0
add esi, 4
cmp esi, edi
jne 0x4cb551
mov esi, dword [esp + 0x20]
push esi
call fcn.00514120
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.004961b0
xor ax, ax
mov ecx, dword [esp + 0x2a0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x29c
ret 0x20
lea ebx, [edi - 1]
mov ecx, ebp
push ebx
call fcn.00497a10
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x4cb5c4
xor esi, esi
jmp 0x4cb5cc
mov esi, dword [eax + 8]
sub esi, ecx
sar esi, 2
test si, si
mov dword [esp + 0x4c], 0
jbe 0x4cb902
mov ecx, esi
and ecx, 0xffff
dec ecx
push ecx
push ebx
mov ecx, ebp
call fcn.00497a10
mov ecx, eax
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
movzx di, byte [esp + 0x2c]
push edi
lea ecx, [esp + 0x14]
mov word [esp + 0x4c], di
call fcn.0048a9e0
cmp al, 0x7f
jne 0x4cb8fa
dec edi
lea ecx, [esp + 0x10]
push edi
call fcn.0048a9e0
and al, 0x30
cmp al, 0x10
jne 0x4cb8fa
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push edx
push eax
push eax
mov esi, 1
call fcn.00415780
mov ebp, dword [esp + 0x30]
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
mov edi, ebx
je 0x4cb672
push 0
mov ecx, edi
call fcn.004061f0
add edi, 4
cmp edi, ebp
jne 0x4cb662
lea eax, [esp + 0x10]
lea ecx, [esp + 0x1c]
push eax
push 1
push ebx
mov dword [esp + 0x30], ebx
call fcn.00405d10
mov al, byte [esp + 0x1b]
mov byte [esp + 0x50], al
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
xor ebp, ebp
and esi, 0xffff
mov byte [esp + 0x2a8], 0x1a
mov dword [esp + 0x60], ebp
mov dword [esp + 0x14], esi
jle 0x4cb802
push ebp
lea ecx, [esp + 0x20]
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
mov ecx, dword [esp + 0x48]
lea eax, [ecx - 1]
lea ecx, [esp + 0x10]
push eax
call fcn.0048a9e0
xor bx, bx
mov bl, al
cmp bx, 7
mov dword [esp + 0x40], ebx
jbe 0x4cb704
mov ebx, 7
mov dword [esp + 0x40], ebx
lea ecx, [esp + 0x10]
call fcn.0048ab50
movsx edx, ax
xor esi, esi
and ebx, 0xffff
mov dword [esp + 0x44], edx
jle 0x4cb75e
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0xa0]
and ebp, 0xff
sub ebp, eax
mov eax, dword [esp + 0x44]
lea edi, [esp + esi + 0xa0]
lea ecx, [edi + ebp]
cmp ecx, eax
jge 0x4cb75a
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x10]
add edx, esi
push edx
call fcn.0048a9e0
inc esi
mov byte [edi], al
cmp esi, ebx
jl 0x4cb731
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xa0]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.0048a680
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x4c]
push edx
push 1
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2b4], 0x1b
call fcn.00405d10
mov edi, dword [esp + 0x2cc]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xa0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov byte [esp + 0x2a8], 0x1a
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x4c]
call fcn.0048a720
mov eax, dword [esp + 0x14]
inc ebp
cmp ebp, eax
mov dword [esp + 0x60], ebp
jl 0x4cb6bb
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4cb802
mov ecx, dword [esp + 0x58]
sub ecx, eax
sar ecx, 2
je 0x4cb802
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.00497af0
lea edx, [esp + 0x50]
mov ecx, esi
push edx
call fcn.00497860
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov byte [esp + 0x2a8], 0x17
cmp eax, edi
mov esi, eax
je 0x4cb826
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, edi
jne 0x4cb814
mov eax, dword [esp + 0x54]
push eax
call fcn.00514120
xor edi, edi
add esp, 4
lea ecx, [esp + 0x64]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x2a8], 0x12
call fcn.004961b0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov ebx, eax
je 0x4cb876
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, ebx
jne 0x4cb864
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0x10
call fcn.0048a720
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov ebx, eax
je 0x4cb8c4
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, ebx
jne 0x4cb8b2
mov esi, dword [esp + 0x20]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2a8], 0xffffffff
call fcn.004961b0
mov ax, word [esp + 0x40]
jmp 0x4cb593
mov dword [esp + 0x4c], 1
xor edi, edi
and esi, 0xffff
mov dword [esp + 0x14], esi
jle 0x4cb9ab
movzx si, byte [esp + 0x2c]
mov word [esp + 0x48], si
dec esi
push edi
push ebx
mov ecx, ebp
call fcn.00497a10
mov ecx, eax
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
push esi
lea ecx, [esp + 0x14]
call fcn.0048a9e0
and al, 0x30
cmp al, 0x10
jne 0x4cb960
mov dword [esp + 0x4c], 1
jmp 0x4cb967
cmp dword [esp + 0x4c], 1
jne 0x4cb989
push esi
lea ecx, [esp + 0x14]
call fcn.0048a9e0
and al, 0x20
cmp al, 0x20
je 0x4cb989
mov ecx, dword [esp + 0x48]
push ecx
lea ecx, [esp + 0x14]
call fcn.0048a9e0
cmp al, 0x7f
je 0x4cb99e
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x10]
push edx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00405d10
mov eax, dword [esp + 0x14]
inc edi
cmp edi, eax
jl 0x4cb920
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4cb9c3
mov edi, dword [esp + 0x24]
mov ecx, edi
sub ecx, eax
test ecx, 0xfffffffc
jne 0x4cba0c
mov edx, dword [esp + 0x14]
mov ecx, ebp
dec edx
push edx
push 0
call fcn.00497a10
mov ecx, eax
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
lea ecx, [esp + 0x28]
call fcn.00405d10
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
test eax, eax
jne 0x4cba14
xor edi, edi
jmp 0x4cba19
sub edi, eax
sar edi, 2
push 0
lea ecx, [esp + 0x20]
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x38]
mov esi, eax
call fcn.00405f70
xor bl, bl
xor ebp, ebp
and edi, 0xffff
mov dword [esp + 0x38], esi
jle 0x4cbb0e
push ebp
lea ecx, [esp + 0x20]
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
test bl, bl
jne 0x4cbaf0
movzx si, byte [esp + 0x2c]
push esi
lea ecx, [esp + 0x14]
call fcn.0048a9e0
cmp al, 0x7f
jne 0x4cbaa9
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
jmp 0x4cbafc
lea edx, [esi - 1]
lea ecx, [esp + 0x10]
push edx
call fcn.0048a9e0
and al, 0x30
cmp al, 0x10
jne 0x4cbabd
inc esi
push esi
lea ecx, [esp + 0x14]
call fcn.0048a9e0
mov ecx, dword [esp + 0x2c8]
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x4cbb05
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x10]
push edx
push 1
mov bl, 1
push eax
jmp 0x4cbafc
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x10]
push ecx
push 1
push edx
lea ecx, [esp + 0x3c]
call fcn.00405d10
inc ebp
cmp ebp, edi
jl 0x4cba63
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push eax
lea ecx, [esp + 0x24]
mov esi, eax
call fcn.00405f70
mov eax, esi
xor esi, esi
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x4cbb57
mov edx, dword [esp + 0x38]
sub edx, ecx
sar edx, 2
cmp esi, edx
jae 0x4cbb57
lea ecx, [ecx + esi*4]
push ecx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00405d10
mov eax, dword [esp + 0x24]
inc esi
jmp 0x4cbb2b
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x4cbb63
xor esi, esi
jmp 0x4cbb6a
sub eax, ecx
sar eax, 2
mov esi, eax
push 0
lea ecx, [esp + 0x20]
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
movzx bx, byte [esp + 0x2c]
lea ecx, [esp + 0x10]
mov word [esp + 0x48], bx
lea edi, [ebx - 1]
push edi
call fcn.0048a9e0
and al, 0x30
cmp al, 0x10
jne 0x4cb687
push edi
lea ecx, [esp + 0x14]
call fcn.0048a9e0
and al, 0xf
push ebx
movzx di, al
lea ecx, [esp + 0x14]
shl edi, 8
call fcn.0048a9e0
xor dx, dx
mov ebx, 6
mov dl, al
mov al, byte [esp + 0x2c]
add edi, edx
cmp al, 5
mov dword [esp + 0x40], edi
jne 0x4cbbe7
mov ebx, 5
mov ebp, dword [esp + 0x40]
lea edi, [ebx + 1]
sub ebp, ebx
mov dword [esp + 0x40], ebp
and ebp, 0xffff
mov eax, ebp
cdq
idiv edi
mov ecx, eax
mov eax, ebp
cdq
idiv edi
test edx, edx
je 0x4cbc0b
inc ecx
and esi, 0xffff
and ecx, 0xffff
dec esi
cmp ecx, esi
je 0x4cbd53
mov eax, dword [0x55ebe8]
inc eax
cmp eax, 3
mov dword [0x55ebe8], eax
jle 0x4cbcc8
xor ebx, ebx
lea ecx, [esp + 0x64]
mov dword [0x55ebe8], ebx
mov byte [esp + 0x2a8], 0x12
call fcn.004961b0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov edi, eax
je 0x4cbc75
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, edi
jne 0x4cbc63
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0048a720
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov edi, eax
je 0x4cb564
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, edi
jne 0x4cbcb5
jmp 0x4cb560
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.004961b0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x4cbcff
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, edi
jne 0x4cbced
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
xor ebx, ebx
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0048a720
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], bl
mov edi, eax
je 0x4cb564
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, edi
jne 0x4cbd40
jmp 0x4cb560
xor esi, esi
test ebx, ebx
jle 0x4cbd77
mov eax, dword [esp + 0x48]
lea ecx, [eax + esi + 1]
push ecx
lea ecx, [esp + 0x14]
call fcn.0048a9e0
mov byte [esp + esi + 0xa0], al
inc esi
cmp esi, ebx
jl 0x4cbd59
xor esi, esi
test ebp, ebp
jle 0x4cbde7
mov eax, dword [esp + 0x2c]
and eax, 0xff
mov dword [esp + 0x60], eax
mov eax, esi
lea ecx, [esp + 0x1c]
cdq
idiv edi
and eax, 0xffff
inc eax
push eax
call fcn.00405cb0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x14]
call fcn.0048a8d0
lea ecx, [esp + 0x10]
call fcn.0048ab50
movsx ecx, ax
mov eax, esi
cdq
idiv edi
add edx, dword [esp + 0x60]
cmp edx, ecx
jge 0x4cbde7
push edx
lea ecx, [esp + 0x14]
call fcn.0048a9e0
lea edx, [ebx + esi]
inc esi
cmp esi, ebp
mov byte [esp + edx + 0xa0], al
jl 0x4cbd8a
mov edi, dword [esp + 0x2cc]
lea ecx, [ebx + ebp]
mov eax, ecx
lea esi, [esp + 0xa0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0xa0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x40]
add ebx, ecx
lea ecx, [esp + 0x4c]
push ebx
push edx
call fcn.0048a680
mov al, byte [esp + 0x1b]
mov byte [esp + 0x50], al
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a8], 0x19
push ecx
push 1
push eax
lea ecx, [esp + 0x5c]
call fcn.00405d10
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.00497af0
lea edx, [esp + 0x50]
mov ecx, esi
push edx
call fcn.00497860
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
cmp eax, ecx
mov byte [esp + 0x2a8], 0x18
mov edi, ecx
mov esi, eax
je 0x4cbe91
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, edi
jne 0x4cbe7f
mov eax, dword [esp + 0x54]
push eax
call fcn.00514120
xor edi, edi
add esp, 4
lea ecx, [esp + 0x4c]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x2a8], 0x17
call fcn.0048a720
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.004961b0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov ebp, eax
je 0x4cbef2
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, ebp
jne 0x4cbee0
mov esi, dword [esp + 0x34]
push esi
call fcn.00514120
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0x10
call fcn.0048a720
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov ebp, eax
je 0x4cbf40
mov ecx, esi
call fcn.0048a720
add esi, 4
cmp esi, ebp
jne 0x4cbf2e
mov esi, dword [esp + 0x20]
push esi
call fcn.00514120
add esp, 4
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.004961b0
mov ax, bx
jmp 0x4cb593
mov ecx, dword [esp + 0x2b0]
call fcn.00497ad0
xor ebp, ebp
test ax, ax
jbe case.0x4caa91.11
xor edi, edi
and eax, 0xffff
mov dword [esp + 0x44], eax
jle 0x4cadf2
xor ebx, ebx
mov ecx, dword [esp + 0x2b0]
push edi
call fcn.00497a10
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4cc038
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jae 0x4cc038
mov ecx, dword [esp + 0x2b0]
push edi
xor esi, esi
call fcn.00497a10
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.0048ab50
test ax, ax
jle 0x4cc032
mov ecx, dword [esp + 0x2b0]
push edi
call fcn.00497a10
mov eax, dword [eax + 4]
push esi
lea ecx, [eax + ebx*4]
call fcn.0048a9e0
mov ecx, dword [esp + 0x2cc]
inc ebp
cmp ebp, 0xff
mov byte [ecx + ebp - 1], al
jg 0x4cadf2
mov ecx, dword [esp + 0x2b0]
push edi
inc esi
call fcn.00497a10
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.0048ab50
movsx edx, ax
cmp esi, edx
jl 0x4cbfe1
inc ebx
jmp 0x4cbf9e
mov eax, dword [esp + 0x44]
inc edi
cmp edi, eax
jl 0x4cbf9c
jmp 0x4cadf2
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.00497a20
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0x1c
call fcn.0048ab50
cmp ax, 2
jge 0x4cc083
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0
call fcn.0048a720
jmp case.0x4caa91.11
push 1
lea ecx, [esp + 0x18]
call fcn.0048a9e0
and eax, 0xff
xor esi, esi
sub eax, 0x55
mov edi, eax
test edi, edi
jle 0x4cc0ba
mov ebx, dword [esp + 0x2cc]
lea ecx, [esi + 2]
push ecx
lea ecx, [esp + 0x18]
call fcn.0048a9e0
mov byte [esi + ebx], al
inc esi
cmp esi, edi
jl 0x4cc0a5
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0
call fcn.0048a720
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.004961b0
mov ax, di
jmp 0x4cb593
mov ecx, esi
call fcn.00497ad0
test ax, ax
jle case.0x4caa91.11
mov ecx, dword [esp + 0x2b0]
lea edx, [esp + 0x4c]
push edx
call fcn.00497a20
push 0
lea ecx, [esp + 0x50]
mov byte [esp + 0x2ac], 0x1d
call fcn.0048a9e0
mov bl, al
xor esi, esi
dec bl
mov byte [esp + 0x44], bl
mov edi, dword [esp + 0x44]
and edi, 0xff
jle 0x4cc150
mov ebp, dword [esp + 0x2cc]
lea eax, [esi + 1]
lea ecx, [esp + 0x4c]
push eax
call fcn.0048a9e0
mov byte [esi + ebp], al
inc esi
cmp esi, edi
jl 0x4cc13b
movzx si, bl
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x4c]
jmp 0x4cc253
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x2b4]
call fcn.00497a20
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0x1e
xor esi, esi
call fcn.0048ab50
test ax, ax
jle 0x4cc1b3
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x18]
call fcn.0048a9e0
mov byte [esi + edi], al
lea ecx, [esp + 0x14]
inc esi
call fcn.0048ab50
movsx edx, ax
cmp esi, edx
jl 0x4cc195
lea ecx, [esp + 0x14]
call fcn.0048ab50
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x14]
jmp 0x4cc253
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.00497a20
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0x1f
call fcn.0048ab50
test ax, ax
jge 0x4cc207
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0
call fcn.0048a720
jmp case.0x4caa91.11
lea ecx, [esp + 0x40]
xor esi, esi
call fcn.0048ab50
test ax, ax
jle 0x4cc23c
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x44]
call fcn.0048a9e0
mov byte [esi + edi], al
lea ecx, [esp + 0x40]
inc esi
call fcn.0048ab50
movsx ecx, ax
cmp esi, ecx
jl 0x4cc21e
lea ecx, [esp + 0x40]
call fcn.0048ab50
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x40]
call fcn.0048a720
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.004961b0
mov ax, si
jmp 0x4cb593
mov dword [esp + 0x14], edi
xor ebx, ebx
push edi
mov ecx, esi
call fcn.00497a10
mov ecx, dword [eax + 4]
cmp ecx, edi
je 0x4cc41b
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
cmp ebx, edx
jae 0x4cc41b
push edi
mov ecx, esi
call fcn.00497a10
mov eax, dword [eax + 4]
lea ecx, [esp + 0x2c]
lea eax, [eax + ebx*4]
push eax
call fcn.0048a5f0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0x20
call fcn.0048ab50
cmp ax, 4
jl 0x4cc405
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x1a1]
mov byte [esp + 0x1a0], 0
rep stosd dword es:[edi], eax
test ebx, ebx
stosw word es:[edi], ax
lea ecx, [esp + 0x2c]
jne 0x4cc30d
call fcn.0048ab50
mov bp, ax
lea ecx, [esp + 0x1a0]
sub ebp, 4
push ebp
push 3
push ecx
jmp 0x4cc323
call fcn.0048ab50
mov bp, ax
lea edx, [esp + 0x1a0]
sub ebp, 5
push ebp
push 4
push edx
lea ecx, [esp + 0x38]
call fcn.0048ab80
call fcn.004a1d60
test al, al
je 0x4cc356
mov edi, dword [esp + 0x2cc]
mov ecx, 0xc
lea esi, [esp + 0x1a0]
mov dword [esp + 0x14], 0x32
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x4cc37a
mov edi, dword [esp + 0x2cc]
mov ecx, ebp
and ecx, 0xffff
lea esi, [esp + 0x1a0]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x2cc]
push ebp
push ecx
lea ecx, [esp + 0x68]
call fcn.0048a680
push ecx
lea edx, [esp + 0x64]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x2b0], 0x21
call fcn.0048a5f0
mov ecx, dword [esp + 0x2b4]
push ebx
push 0
mov byte [esp + 0x2b4], 0x21
call fcn.00497a10
mov ecx, eax
call fcn.00405cb0
mov ecx, eax
call fcn.0048a8d0
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x2a8], 0x20
add ecx, ebp
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x60]
call fcn.0048a720
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0
call fcn.0048a720
mov esi, dword [esp + 0x2b0]
inc ebx
xor edi, edi
jmp 0x4cc27d
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0
call fcn.0048a720
jmp case.0x4caa91.11
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.004961b0
mov ax, word [esp + 0x14]
jmp 0x4cb593