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

Disassembly:
push 0xffffffffffffffff
push 0x4f144e
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.0046f260
test ax, ax
je case.0x4927f1.11
mov ecx, dword [ebx + 0x60]
call fcn.004c81e0
cmp eax, 0x15
jne 0x4927d7
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.00453d60
mov ecx, esi
mov byte [esp + 0x2a8], 2
call fcn.0046f260
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 0x49221c
jmp 0x4921cb
mov esi, dword [esp + 0x2b0]
xor edi, edi
push ebx
mov ecx, esi
call fcn.0046f250
mov ecx, dword [eax + 4]
cmp ecx, edi
je 0x4921e2
mov edi, dword [eax + 8]
sub edi, ecx
sar edi, 2
xor esi, esi
test edi, edi
jle 0x492211
mov ecx, dword [esp + 0x2b0]
push ebx
call fcn.0046f250
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.00408340
inc esi
cmp esi, edi
jl 0x4921e8
mov eax, dword [esp + 0x60]
inc ebx
cmp ebx, eax
jl 0x4921c2
xor edi, edi
mov ecx, dword [esp + 0x20]
cmp ecx, edi
jne 0x492228
xor eax, eax
jmp 0x492231
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.00454280
movsx ecx, ax
cmp ecx, ebp
jle 0x4923d2
mov ecx, dword [esp + 0x20]
cmp ecx, edi
jne 0x492251
xor eax, eax
jmp 0x49225a
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
push ebp
lea ecx, [ecx + eax*4 - 4]
call fcn.004541f0
cmp al, 0x7f
jne 0x4923d2
xor ebx, ebx
lea ecx, [esp + 0x14]
push ebx
call fcn.00453d90
mov byte [esp + 0x2a8], 4
mov esi, ebp
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
jne 0x49228e
xor eax, eax
jmp 0x492297
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.00454280
movsx edx, ax
cmp esi, edx
jge 0x4922d3
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
jne 0x4922b3
xor eax, eax
jmp 0x4922bc
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
push esi
lea ecx, [ecx + eax*4 - 4]
call fcn.004541f0
push eax
lea ecx, [esp + 0x18]
call fcn.00454260
inc esi
jmp 0x492282
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.00408c70
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00404010
lea edx, [esp + 0x14]
lea ecx, [esp + 0x1c]
push edx
push 1
push esi
mov dword [esp + 0x30], esi
call fcn.00408340
lea ecx, [esp + 0x14]
call fcn.00454280
mov esi, dword [esp + 0x2b0]
mov ebp, eax
mov ecx, esi
call fcn.0046f280
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call fcn.0046eff0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 3
call fcn.00453ea0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 2
mov edi, eax
je 0x49236b
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x492358
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4923b8
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x4923a5
mov esi, dword [esp + 0x20]
push esi
call fcn.004db420
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x492b52
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cmp eax, ebx
je 0x492428
mov edx, ecx
sub edx, eax
sar edx, 2
cmp esi, edx
jae 0x492428
lea ecx, [eax + esi*4]
call fcn.00454280
movsx eax, ax
cmp eax, ebp
jle 0x49240d
mov ecx, dword [esp + 0x20]
push ebp
lea ecx, [ecx + esi*4]
call fcn.004541f0
cmp al, 0x7f
je 0x492425
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.00408340
inc esi
jmp 0x4923d6
mov edx, dword [esp + 0x34]
cmp edx, ebx
jne 0x492434
xor ebp, ebp
jmp 0x49243d
mov ebp, dword [esp + 0x38]
sub ebp, edx
sar ebp, 2
push eax
push ecx
push ecx
call fcn.00408c70
mov edx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x1c]
push edx
push esi
call fcn.00404010
xor edi, edi
cmp ebp, ebx
mov dword [esp + 0x24], esi
jle 0x4925f3
mov eax, dword [esp + 0x4c]
push ebx
lea ecx, [esp + 0x44]
mov esi, dword [eax + 0x2014]
call fcn.00453d90
mov ecx, dword [esp + 0x34]
push 3
mov byte [esp + 0x2ac], 5
lea ecx, [ecx + edi*4]
call fcn.004541f0
test al, 0xf
jne 0x492586
cmp edi, ebx
jne 0x4924a5
add esi, 3
jmp 0x492586
mov ecx, dword [esp + 0x20]
add esi, 4
cmp ecx, ebx
jne 0x4924b4
xor eax, eax
jmp 0x4924bd
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.00453d70
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2ac], 6
call fcn.00453d90
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 7
xor ebx, ebx
call fcn.00454280
movsx eax, ax
dec eax
test eax, eax
jle 0x49251f
push ebx
lea ecx, [esp + 0x18]
call fcn.004541f0
push eax
lea ecx, [esp + 0x4c]
call fcn.00454260
lea ecx, [esp + 0x14]
inc ebx
call fcn.00454280
movsx ecx, ax
dec ecx
cmp ebx, ecx
jl 0x4924f9
mov ecx, dword [esp + 0x24]
lea eax, [ecx - 4]
push eax
add eax, 4
push ecx
push eax
call fcn.00408c70
mov eax, dword [esp + 0x30]
add esp, 0xc
lea ecx, [esp + 0x1c]
push eax
add eax, 0xfffffffc
push eax
call fcn.00404010
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.00408340
lea ecx, [esp + 0x48]
mov byte [esp + 0x2a8], 6
call fcn.00453ea0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 5
call fcn.00453ea0
xor ebx, ebx
mov eax, dword [esp + 0x34]
lea ecx, [eax + edi*4]
call fcn.00454280
movsx ecx, ax
cmp esi, ecx
jge 0x4925c4
mov edx, dword [esp + 0x34]
push esi
lea ecx, [edx + edi*4]
call fcn.004541f0
push eax
lea ecx, [esp + 0x44]
call fcn.00454260
mov eax, dword [esp + 0x34]
inc esi
lea ecx, [eax + edi*4]
call fcn.00454280
movsx ecx, ax
cmp esi, ecx
jl 0x492599
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x40]
push edx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00408340
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 3
call fcn.00453ea0
inc edi
cmp edi, ebp
jl 0x492467
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
push ecx
push eax
push eax
call fcn.00408c70
mov edx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x30]
push edx
push esi
call fcn.00404010
mov eax, dword [esp + 0x20]
mov edx, esi
cmp eax, ebx
mov dword [esp + 0x38], edx
je 0x4927ce
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
je 0x4927ce
mov ebx, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x2c]
xor edi, edi
xor esi, esi
test eax, eax
je 0x4926eb
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jae 0x4926eb
cmp bl, 0xff
lea ecx, [eax + esi*4]
jne 0x492680
call fcn.00454280
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 0x4926d4
call fcn.00454280
test ax, ax
jle 0x4926dd
mov edx, dword [esp + 0x20]
push 0
lea ecx, [edx + esi*4]
call fcn.004541f0
mov ecx, ebx
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x4926b3
mov edi, 1
jmp 0x4926b7
test edi, edi
je 0x4926dd
mov edx, dword [esp + 0x20]
lea ecx, [edx + esi*4]
call fcn.00454280
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.00408340
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
inc esi
jmp 0x492647
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x492718
sub edx, ecx
sar edx, 2
je 0x492718
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.0046f280
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.0046eff0
mov eax, dword [esp + 0x20]
xor ebx, ebx
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.00408c70
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00404010
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 0x492767
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x492754
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4927b4
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x4927a1
mov esi, dword [esp + 0x20]
push esi
call fcn.004db420
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x492b52
mov ebp, dword [esp + 0x2c]
jmp 0x49271a
mov ecx, dword [ebx + 0x60]
call fcn.004c8710
dec eax
cmp eax, 0x27
ja case.0x4927f1.11
xor edx, edx
mov dl, byte [eax + 0x4941c8]
jmp dword [edx*4 + 0x49419c]
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.0046f1a0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 8
call fcn.00454280
push eax
lea ecx, [esp + 0xa4]
push edi
push ecx
lea ecx, [esp + 0x20]
call fcn.004542b0
mov al, byte [esp + 0xa0]
cmp al, 0x80
jne 0x49285f
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 0x4928d3
jbe 0x49287d
xor bx, bx
lea esi, [esp + 0xa3]
mov bl, al
sub ebx, 0x80
mov ecx, ebx
and ecx, 0xffff
jmp 0x4928c1
test al, al
jne 0x4928ad
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 0x4928d3
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.00408c70
mov edx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x30]
push edx
push esi
call fcn.00404010
push ebx
push ebp
lea ecx, [esp + 0x80]
mov dword [esp + 0x40], esi
call fcn.00453e00
push eax
mov eax, dword [esp + 0x3c]
push 1
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2b4], 0xa
call fcn.00408340
lea ecx, [esp + 0x78]
mov byte [esp + 0x2a8], 9
call fcn.00453ea0
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.0046f280
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call fcn.0046eff0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 8
mov ebp, eax
je 0x492991
push edi
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, ebp
jne 0x49297e
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
jmp 0x493cb5
push edi
mov ecx, esi
call fcn.0046f250
mov ecx, dword [eax + 4]
cmp ecx, edi
jne 0x4929d1
mov dword [esp + 0x48], edi
jmp 0x4929dd
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 0x492b48
mov esi, dword [esp + 0x2b0]
push 0
mov ecx, esi
call fcn.0046f250
mov eax, dword [eax + 4]
lea ecx, [esp + 0x14]
lea eax, [eax + ebx*4]
push eax
call fcn.00453d70
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xc
mov edi, dword [esi + 0x2014]
call fcn.00454280
mov bp, ax
mov ecx, esi
sub ebp, edi
call fcn.00489310
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.004542b0
call fcn.00469ec0
test al, al
je 0x492aa3
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 0x492ac7
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.00453e00
push ecx
lea edx, [esp + 0x44]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x2b0], 0xd
call fcn.00453d70
mov esi, dword [esp + 0x2b4]
push ebx
push 0
mov ecx, esi
mov byte [esp + 0x2b4], 0xd
call fcn.0046f250
mov ecx, eax
call fcn.00403fc0
mov ecx, eax
call fcn.00454080
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0xc
call fcn.00453ea0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xb
call fcn.00453ea0
mov eax, dword [esp + 0x48]
inc ebx
cmp ebx, eax
jl 0x492a1c
push 0
call fcn.004db420
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.00474760
mov ax, bp
jmp 0x4932f3
mov ecx, dword [esp + 0x2b0]
lea eax, [esp + 0x14]
push eax
call fcn.0046f1a0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xf
call fcn.00454280
push eax
lea ecx, [esp + 0xa4]
push 0
push ecx
lea ecx, [esp + 0x20]
call fcn.004542b0
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 0x493fb3
mov ecx, esi
call fcn.0046f260
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.00453d60
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.004c8710
cmp eax, 5
jne 0x492c59
mov byte [esp + 0x2c], al
jmp 0x492c78
mov ecx, dword [ebx + 0x60]
call fcn.004c8710
cmp eax, 6
je 0x492c73
mov ecx, dword [ebx + 0x60]
call fcn.004c8710
cmp eax, 7
jne 0x492c78
mov byte [esp + 0x2c], 6
mov ecx, dword [ebx + 0x60]
call fcn.004c8710
cmp eax, 9
je 0x492c9b
mov ecx, dword [ebx + 0x60]
call fcn.004c8710
cmp eax, 8
jne 0x492d0c
mov esi, dword [esp + 0x2b0]
xor ebp, ebp
lea ebx, [edi - 1]
mov ecx, esi
push ebx
call fcn.0046f250
mov ecx, dword [eax + 4]
cmp ecx, ebp
jne 0x492cb1
xor eax, eax
jmp 0x492cb9
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 0x492d0c
mov ecx, dword [esp + 0x2b0]
push esi
push ebx
call fcn.0046f250
mov ecx, eax
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
push 1
lea ecx, [esp + 0x14]
call fcn.004541f0
cmp al, 5
je 0x492e51
inc esi
cmp esi, ebp
jl 0x492cc9
lea ecx, [esp + 0x64]
call fcn.0046fe10
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.00460790
xor ebx, ebx
cmp eax, ebx
jge 0x492d43
xor eax, eax
shl eax, 3
push eax
call fcn.004dbc04
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.00415c30
lea ecx, [esp + 0x74]
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
call fcn.004747a0
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.00408080
mov ecx, esi
call fcn.004747a0
mov al, byte [esp + 0x74]
lea ecx, [esp + 0x2b4]
mov byte [esi + 0x10], al
call fcn.00474d70
cmp di, bx
jne 0x49322b
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.00474760
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x492dff
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x492dec
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4932c4
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x492e3d
jmp 0x4932c0
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.0046f250
mov ecx, dword [eax + 4]
cmp ecx, ebp
je 0x492f5b
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x492f5b
push esi
push ebx
mov ecx, edi
call fcn.0046f250
mov ecx, eax
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
push 1
lea ecx, [esp + 0x14]
call fcn.004541f0
cmp al, 5
je 0x492f51
mov edi, dword [esp + 0x2b0]
push ebx
mov ecx, edi
call fcn.0046f250
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x2c]
push ebx
lea esi, [ecx + edx*4]
mov ecx, edi
call fcn.0046f250
mov edi, eax
add esi, 4
mov ebp, dword [edi + 8]
cmp esi, ebp
je 0x492f25
lea eax, [esi - 4]
mov dword [esp + 0x14], eax
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push esi
call fcn.00453d70
mov ecx, dword [esp + 0x18]
call fcn.00454080
mov ecx, dword [esp + 0x14]
add esi, 4
add ecx, 4
cmp esi, ebp
mov dword [esp + 0x14], ecx
jne 0x492efd
mov eax, dword [edi + 8]
mov ecx, edi
push eax
add eax, 0xfffffffc
push eax
call fcn.00404010
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 0x492e6d
push ebx
mov ecx, edi
call fcn.0046f250
mov ecx, dword [eax + 4]
cmp ecx, ebp
jne 0x492f6e
xor esi, esi
jmp 0x492f76
mov esi, dword [eax + 8]
sub esi, ecx
sar esi, 2
lea ecx, [esp + 0x7c]
call fcn.0046ec80
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 0x4930a4
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2b0]
push edx
push ebx
call fcn.0046f250
mov ecx, eax
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
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.004541f0
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.004542b0
mov eax, dword [esp + 0x2cc]
test eax, eax
je 0x493045
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.00453e00
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.00408340
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0x40]
add esi, ebp
mov byte [esp + 0x2a8], 0x14
mov dword [esp + 0x48], esi
call fcn.00453ea0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x492faf
lea eax, [esp + 0x50]
lea ecx, [esp + 0x7c]
push eax
call fcn.0046eff0
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.00481290
xor ebx, ebx
cmp eax, ebx
jge 0x4930d9
xor eax, eax
shl eax, 4
push eax
call fcn.004dbc04
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.00408220
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.00405d60
mov ecx, dword [esp + 0x2d4]
mov byte [esp + 0x2cc], 0x14
call fcn.0046ee30
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
cmp esi, eax
mov byte [esp + 0x2a8], 0x13
mov edi, eax
je 0x49315b
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x493148
mov esi, dword [esp + 0x54]
push esi
call fcn.004db420
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.0046ed80
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x4931a8
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x493195
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4931f5
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x4931e2
mov esi, dword [esp + 0x20]
push esi
call fcn.004db420
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.00474760
mov ax, word [esp + 0x48]
jmp 0x4932f3
cmp ax, 1
jbe 0x49330e
cmp di, 1
jae 0x49330e
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.00474760
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x493277
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x493264
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x4932c4
push ebx
mov ecx, esi
call fcn.00404540
add esi, 4
cmp esi, edi
jne 0x4932b1
mov esi, dword [esp + 0x20]
push esi
call fcn.004db420
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.00474760
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.0046f250
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x493324
xor esi, esi
jmp 0x49332c
mov esi, dword [eax + 8]
sub esi, ecx
sar esi, 2
test si, si
mov dword [esp + 0x4c], 0
jbe 0x493662
mov ecx, esi
and ecx, 0xffff
dec ecx
push ecx
push ebx
mov ecx, ebp
call fcn.0046f250
mov ecx, eax
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
movzx di, byte [esp + 0x2c]
push edi
lea ecx, [esp + 0x14]
mov word [esp + 0x4c], di
call fcn.004541f0
cmp al, 0x7f
jne 0x49365a
dec edi
lea ecx, [esp + 0x10]
push edi
call fcn.004541f0
and al, 0x30
cmp al, 0x10
jne 0x49365a
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push edx
push eax
push eax
mov esi, 1
call fcn.00408c70
mov ebp, dword [esp + 0x30]
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
mov edi, ebx
je 0x4933d2
push 0
mov ecx, edi
call fcn.00404540
add edi, 4
cmp edi, ebp
jne 0x4933c2
lea eax, [esp + 0x10]
lea ecx, [esp + 0x1c]
push eax
push 1
push ebx
mov dword [esp + 0x30], ebx
call fcn.00408340
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 0x493562
push ebp
lea ecx, [esp + 0x20]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
mov ecx, dword [esp + 0x48]
lea eax, [ecx - 1]
lea ecx, [esp + 0x10]
push eax
call fcn.004541f0
xor bx, bx
mov bl, al
cmp bx, 7
mov dword [esp + 0x40], ebx
jbe 0x493464
mov ebx, 7
mov dword [esp + 0x40], ebx
lea ecx, [esp + 0x10]
call fcn.00454280
movsx edx, ax
xor esi, esi
and ebx, 0xffff
mov dword [esp + 0x44], edx
jle 0x4934be
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 0x4934ba
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x10]
add edx, esi
push edx
call fcn.004541f0
inc esi
mov byte [edi], al
cmp esi, ebx
jl 0x493491
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xa0]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.00453e00
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.00408340
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.00453ea0
mov eax, dword [esp + 0x14]
inc ebp
cmp ebp, eax
mov dword [esp + 0x60], ebp
jl 0x49341b
mov eax, dword [esp + 0x54]
test eax, eax
je 0x493562
mov ecx, dword [esp + 0x58]
sub ecx, eax
sar ecx, 2
je 0x493562
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.0046f280
lea edx, [esp + 0x50]
mov ecx, esi
push edx
call fcn.0046eff0
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov byte [esp + 0x2a8], 0x17
cmp eax, edi
mov esi, eax
je 0x493586
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x493574
mov eax, dword [esp + 0x54]
push eax
call fcn.004db420
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.00474760
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov ebx, eax
je 0x4935d6
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, ebx
jne 0x4935c4
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov ebx, eax
je 0x493624
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, ebx
jne 0x493612
mov esi, dword [esp + 0x20]
push esi
call fcn.004db420
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.00474760
mov ax, word [esp + 0x40]
jmp 0x4932f3
mov dword [esp + 0x4c], 1
xor edi, edi
and esi, 0xffff
mov dword [esp + 0x14], esi
jle 0x49370b
movzx si, byte [esp + 0x2c]
mov word [esp + 0x48], si
dec esi
push edi
push ebx
mov ecx, ebp
call fcn.0046f250
mov ecx, eax
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
push esi
lea ecx, [esp + 0x14]
call fcn.004541f0
and al, 0x30
cmp al, 0x10
jne 0x4936c0
mov dword [esp + 0x4c], 1
jmp 0x4936c7
cmp dword [esp + 0x4c], 1
jne 0x4936e9
push esi
lea ecx, [esp + 0x14]
call fcn.004541f0
and al, 0x20
cmp al, 0x20
je 0x4936e9
mov ecx, dword [esp + 0x48]
push ecx
lea ecx, [esp + 0x14]
call fcn.004541f0
cmp al, 0x7f
je 0x4936fe
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x10]
push edx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00408340
mov eax, dword [esp + 0x14]
inc edi
cmp edi, eax
jl 0x493680
mov eax, dword [esp + 0x20]
test eax, eax
je 0x493723
mov edi, dword [esp + 0x24]
mov ecx, edi
sub ecx, eax
test ecx, 0xfffffffc
jne 0x49376c
mov edx, dword [esp + 0x14]
mov ecx, ebp
dec edx
push edx
push 0
call fcn.0046f250
mov ecx, eax
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
lea ecx, [esp + 0x28]
call fcn.00408340
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
test eax, eax
jne 0x493774
xor edi, edi
jmp 0x493779
sub edi, eax
sar edi, 2
push 0
lea ecx, [esp + 0x20]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x38]
mov esi, eax
call fcn.00404010
xor bl, bl
xor ebp, ebp
and edi, 0xffff
mov dword [esp + 0x38], esi
jle 0x49386e
push ebp
lea ecx, [esp + 0x20]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
test bl, bl
jne 0x493850
movzx si, byte [esp + 0x2c]
push esi
lea ecx, [esp + 0x14]
call fcn.004541f0
cmp al, 0x7f
jne 0x493809
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
jmp 0x49385c
lea edx, [esi - 1]
lea ecx, [esp + 0x10]
push edx
call fcn.004541f0
and al, 0x30
cmp al, 0x10
jne 0x49381d
inc esi
push esi
lea ecx, [esp + 0x14]
call fcn.004541f0
mov ecx, dword [esp + 0x2c8]
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x493865
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x10]
push edx
push 1
mov bl, 1
push eax
jmp 0x49385c
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x10]
push ecx
push 1
push edx
lea ecx, [esp + 0x3c]
call fcn.00408340
inc ebp
cmp ebp, edi
jl 0x4937c3
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push eax
lea ecx, [esp + 0x24]
mov esi, eax
call fcn.00404010
mov eax, esi
xor esi, esi
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x4938b7
mov edx, dword [esp + 0x38]
sub edx, ecx
sar edx, 2
cmp esi, edx
jae 0x4938b7
lea ecx, [ecx + esi*4]
push ecx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00408340
mov eax, dword [esp + 0x24]
inc esi
jmp 0x49388b
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x4938c3
xor esi, esi
jmp 0x4938ca
sub eax, ecx
sar eax, 2
mov esi, eax
push 0
lea ecx, [esp + 0x20]
call fcn.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
movzx bx, byte [esp + 0x2c]
lea ecx, [esp + 0x10]
mov word [esp + 0x48], bx
lea edi, [ebx - 1]
push edi
call fcn.004541f0
and al, 0x30
cmp al, 0x10
jne 0x4933e7
push edi
lea ecx, [esp + 0x14]
call fcn.004541f0
and al, 0xf
push ebx
movzx di, al
lea ecx, [esp + 0x14]
shl edi, 8
call fcn.004541f0
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 0x493947
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 0x49396b
inc ecx
and esi, 0xffff
and ecx, 0xffff
dec esi
cmp ecx, esi
je 0x493ab3
mov eax, dword [0x5130e0]
inc eax
cmp eax, 3
mov dword [0x5130e0], eax
jle 0x493a28
xor ebx, ebx
lea ecx, [esp + 0x64]
mov dword [0x5130e0], ebx
mov byte [esp + 0x2a8], 0x12
call fcn.00474760
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov edi, eax
je 0x4939d5
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x4939c3
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov edi, eax
je 0x4932c4
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x493a15
jmp 0x4932c0
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.00474760
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x493a5f
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x493a4d
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], bl
mov edi, eax
je 0x4932c4
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x493aa0
jmp 0x4932c0
xor esi, esi
test ebx, ebx
jle 0x493ad7
mov eax, dword [esp + 0x48]
lea ecx, [eax + esi + 1]
push ecx
lea ecx, [esp + 0x14]
call fcn.004541f0
mov byte [esp + esi + 0xa0], al
inc esi
cmp esi, ebx
jl 0x493ab9
xor esi, esi
test ebp, ebp
jle 0x493b47
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.00403fc0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00453d70
lea ecx, [esp + 0x14]
call fcn.00454080
lea ecx, [esp + 0x10]
call fcn.00454280
movsx ecx, ax
mov eax, esi
cdq
idiv edi
add edx, dword [esp + 0x60]
cmp edx, ecx
jge 0x493b47
push edx
lea ecx, [esp + 0x14]
call fcn.004541f0
lea edx, [ebx + esi]
inc esi
cmp esi, ebp
mov byte [esp + edx + 0xa0], al
jl 0x493aea
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.00453e00
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.00408340
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.0046f280
lea edx, [esp + 0x50]
mov ecx, esi
push edx
call fcn.0046eff0
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 0x493bf1
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, edi
jne 0x493bdf
mov eax, dword [esp + 0x54]
push eax
call fcn.004db420
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.00453ea0
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.00474760
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov ebp, eax
je 0x493c52
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, ebp
jne 0x493c40
mov esi, dword [esp + 0x34]
push esi
call fcn.004db420
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.00453ea0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov ebp, eax
je 0x493ca0
mov ecx, esi
call fcn.00453ea0
add esi, 4
cmp esi, ebp
jne 0x493c8e
mov esi, dword [esp + 0x20]
push esi
call fcn.004db420
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.00474760
mov ax, bx
jmp 0x4932f3
mov ecx, dword [esp + 0x2b0]
call fcn.0046f260
xor ebp, ebp
test ax, ax
jbe case.0x4927f1.11
xor edi, edi
and eax, 0xffff
mov dword [esp + 0x44], eax
jle 0x492b52
xor ebx, ebx
mov ecx, dword [esp + 0x2b0]
push edi
call fcn.0046f250
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x493d98
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jae 0x493d98
mov ecx, dword [esp + 0x2b0]
push edi
xor esi, esi
call fcn.0046f250
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.00454280
test ax, ax
jle 0x493d92
mov ecx, dword [esp + 0x2b0]
push edi
call fcn.0046f250
mov eax, dword [eax + 4]
push esi
lea ecx, [eax + ebx*4]
call fcn.004541f0
mov ecx, dword [esp + 0x2cc]
inc ebp
cmp ebp, 0xff
mov byte [ecx + ebp - 1], al
jg 0x492b52
mov ecx, dword [esp + 0x2b0]
push edi
inc esi
call fcn.0046f250
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.00454280
movsx edx, ax
cmp esi, edx
jl 0x493d41
inc ebx
jmp 0x493cfe
mov eax, dword [esp + 0x44]
inc edi
cmp edi, eax
jl 0x493cfc
jmp 0x492b52
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.0046f1a0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0x1c
call fcn.00454280
cmp ax, 2
jge 0x493de3
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0
call fcn.00453ea0
jmp case.0x4927f1.11
push 1
lea ecx, [esp + 0x18]
call fcn.004541f0
and eax, 0xff
xor esi, esi
sub eax, 0x55
mov edi, eax
test edi, edi
jle 0x493e1a
mov ebx, dword [esp + 0x2cc]
lea ecx, [esi + 2]
push ecx
lea ecx, [esp + 0x18]
call fcn.004541f0
mov byte [esi + ebx], al
inc esi
cmp esi, edi
jl 0x493e05
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0
call fcn.00453ea0
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.00474760
mov ax, di
jmp 0x4932f3
mov ecx, esi
call fcn.0046f260
test ax, ax
jle case.0x4927f1.11
mov ecx, dword [esp + 0x2b0]
lea edx, [esp + 0x4c]
push edx
call fcn.0046f1a0
push 0
lea ecx, [esp + 0x50]
mov byte [esp + 0x2ac], 0x1d
call fcn.004541f0
mov bl, al
xor esi, esi
dec bl
mov byte [esp + 0x44], bl
mov edi, dword [esp + 0x44]
and edi, 0xff
jle 0x493eb0
mov ebp, dword [esp + 0x2cc]
lea eax, [esi + 1]
lea ecx, [esp + 0x4c]
push eax
call fcn.004541f0
mov byte [esi + ebp], al
inc esi
cmp esi, edi
jl 0x493e9b
movzx si, bl
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x4c]
jmp 0x493fb3
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x2b4]
call fcn.0046f1a0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0x1e
xor esi, esi
call fcn.00454280
test ax, ax
jle 0x493f13
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x18]
call fcn.004541f0
mov byte [esi + edi], al
lea ecx, [esp + 0x14]
inc esi
call fcn.00454280
movsx edx, ax
cmp esi, edx
jl 0x493ef5
lea ecx, [esp + 0x14]
call fcn.00454280
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x14]
jmp 0x493fb3
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.0046f1a0
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0x1f
call fcn.00454280
test ax, ax
jge 0x493f67
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0
call fcn.00453ea0
jmp case.0x4927f1.11
lea ecx, [esp + 0x40]
xor esi, esi
call fcn.00454280
test ax, ax
jle 0x493f9c
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x44]
call fcn.004541f0
mov byte [esi + edi], al
lea ecx, [esp + 0x40]
inc esi
call fcn.00454280
movsx ecx, ax
cmp esi, ecx
jl 0x493f7e
lea ecx, [esp + 0x40]
call fcn.00454280
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x40]
call fcn.00453ea0
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.00474760
mov ax, si
jmp 0x4932f3
mov dword [esp + 0x14], edi
xor ebx, ebx
push edi
mov ecx, esi
call fcn.0046f250
mov ecx, dword [eax + 4]
cmp ecx, edi
je 0x49417b
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
cmp ebx, edx
jae 0x49417b
push edi
mov ecx, esi
call fcn.0046f250
mov eax, dword [eax + 4]
lea ecx, [esp + 0x2c]
lea eax, [eax + ebx*4]
push eax
call fcn.00453d70
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0x20
call fcn.00454280
cmp ax, 4
jl 0x494165
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 0x49406d
call fcn.00454280
mov bp, ax
lea ecx, [esp + 0x1a0]
sub ebp, 4
push ebp
push 3
push ecx
jmp 0x494083
call fcn.00454280
mov bp, ax
lea edx, [esp + 0x1a0]
sub ebp, 5
push ebp
push 4
push edx
lea ecx, [esp + 0x38]
call fcn.004542b0
call fcn.00469ec0
test al, al
je 0x4940b6
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 0x4940da
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.00453e00
push ecx
lea edx, [esp + 0x64]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x2b0], 0x21
call fcn.00453d70
mov ecx, dword [esp + 0x2b4]
push ebx
push 0
mov byte [esp + 0x2b4], 0x21
call fcn.0046f250
mov ecx, eax
call fcn.00403fc0
mov ecx, eax
call fcn.00454080
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x2a8], 0x20
add ecx, ebp
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x60]
call fcn.00453ea0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0
call fcn.00453ea0
mov esi, dword [esp + 0x2b0]
inc ebx
xor edi, edi
jmp 0x493fdd
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0
call fcn.00453ea0
jmp case.0x4927f1.11
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.00474760
mov ax, word [esp + 0x14]
jmp 0x4932f3