Function at 0x48a7c0
Capabilities:
Capture screenshot
Generate random numbers using a mersenne twister
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8d4
mov eax, dword [ebp + 8]
mov al, byte [eax + 2]
mov ecx, dword [0x51ae08]
push ebx
mov dl, 1
cmp dl, al
push esi
push edi
sbb edi, edi
and edi, dword [0x51ae0c]
mov dl, 7
cmp dl, al
sbb ebx, ebx
and ebx, dword [0x51ae24]
xor esi, esi
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xc8], edi
mov dword [esp + 0xbc], ebx
cmp ecx, esi
je 0x48a813
call fcn.0041acb0
cmp edi, esi
je 0x48a81e
mov ecx, edi
call fcn.0041acb0
cmp ebx, esi
je 0x48a829
mov ecx, ebx
call fcn.0041acb0
mov eax, dword [0x5165ec]
movzx edi, word [eax + 0xf0]
xor ebx, ebx
and edi, 3
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], esi
cmp edi, 2
je 0x48a8be
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [esp + 0x34], eax
cmp eax, esi
je 0x48a8be
mov ecx, eax
push ecx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x48a8be
mov eax, dword [esp + 0x34]
cmp edi, esi
jne 0x48a881
lea edx, [esp + 0xe0]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
jmp 0x48a89e
lea edx, [esp + 0xe0]
push edx
push eax
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], esi
call dword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
je 0x48a8be
add ebx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
add dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], ebx
mov ebx, dword [ebp + 0x1c]
push 0x2e
push ebx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x3c], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xa4], esi
call fcn.004cb9fc
mov edi, eax
add esp, 8
cmp edi, esi
je 0x48a948
add edi, 2
push 0x50d430
push edi
call fcn.004c9bad
add esp, 8
test eax, eax
je 0x48a92c
push 0x50d438
push edi
call fcn.004c9bad
add esp, 8
test eax, eax
je 0x48a92c
push 0x50d440
push edi
call fcn.004c9bad
add esp, 8
test eax, eax
jne 0x48a948
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x31
call edi
push 0x32
mov dword [esp + 0xa4], eax
call edi
mov dword [esp + 0x9c], eax
mov eax, 3
mov dword [esp + 0x98], esi
mov dword [esp + 0xc0], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0xb4], esi
mov byte [esp + 0xab], 0
mov byte [esp + 0xf], 0
mov byte [esp + 0x4a], 0
mov byte [esp + 0x67], 1
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x6c], eax
mov dword [esp + 0xb8], eax
mov byte [esp + 0x13], 0
mov dword [esp + 0x68], 0x3e8
mov dword [esp + 0xa4], 0xff000000
mov byte [esp + 0x27], 0
mov byte [esp + 0x5e], 1
mov byte [esp + 0x1d], 0
mov byte [esp + 0x12], 0
mov esi, ebx
lea ecx, [ecx]
movzx eax, word [esi]
cmp eax, 0x20
je 0x48a9dd
cmp eax, 9
jne 0x48a9e2
add esi, 2
jmp 0x48a9d0
cmp word [esi], 0x2a
jne 0x48b1ab
jmp 0x48a9f4
mov esi, dword [esp + 0x38]
mov edi, 2
movzx edx, word [esi + edi]
add esi, edi
push edx
call fcn.004cb3ba
add eax, 0xffffffbf
add esp, 4
cmp eax, 0x16
ja case.0x48aa1b.66
movzx eax, byte [eax + 0x48d884]
jmp dword [eax*4 + 0x48d860]
push 3
push 0x50d448
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b13b
lea ecx, [esp + 0x78]
add esi, 6
push ecx
mov ecx, esi
mov byte [esp + 0x17], 1
call fcn.00498710
add esp, 4
jmp 0x48b13b
push 0xa
push 0x50d450
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48aa80
add esi, 0x14
mov byte [esp + 0x1d], 1
jmp 0x48b13b
push 0xa
push 0x50d478
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b13b
add esi, 0x14
mov byte [esp + 0x1d], 1
mov byte [esp + 0x12], 1
jmp 0x48b13b
push 0xa
push 0x50d3c4
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48aae1
add esi, 0x14
mov byte [esp + 0x4a], 1
mov byte [esp + 0x67], al
jmp 0x48b13b
push 4
push 0x50d3ec
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48ab0b
add esi, 8
mov byte [esp + 0x4a], 1
jmp 0x48b13b
lea edi, [esi + 2]
mov eax, edi
call fcn.0040e320
test al, al
je 0x48ab32
push 0x10
push 0
push edi
call fcn.004cb270
add esp, 0xc
mov dword [esp + 0x9c], eax
jmp 0x48b13b
push edi
call fcn.004cae86
add esp, 4
mov dword [esp + 0x9c], eax
jmp 0x48b13b
push 4
push str.Icon
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b13b
add esi, 8
mov eax, esi
call fcn.0040e320
test al, al
je 0x48ab83
push 0x10
push 0
push esi
call fcn.004cb270
add esp, 0xc
mov dword [esp + 0x34], eax
jmp 0x48b13b
push esi
call fcn.004cae86
add esp, 4
mov dword [esp + 0x34], eax
jmp 0x48b13b
push 6
push 0x50d4a0
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b13b
push 6
push 0x50d4c0
add esi, 0xc
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48abe6
mov dword [esp + 0xb8], 1
jmp 0x48b13b
push 6
push str.CENTER
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48ac06
mov dword [esp + 0xb8], edi
jmp 0x48b13b
push edi
push 0x50d4f0
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
je 0x48ace4
push edi
push 0x50d4f8
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
je 0x48ace4
push edi
push 0x50d500
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
je 0x48acd4
push edi
push 0x50d508
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
je 0x48acd4
push edi
push 0x50d510
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
je 0x48acc4
push edi
push 0x50d518
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
je 0x48acc4
push edi
push 0x50d520
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
je 0x48acb4
push edi
push 0x50d528
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
je 0x48acb4
mov byte [esp + 0xf], 1
jmp 0x48b13b
mov dword [esp + 0xb8], 6
jmp 0x48b13b
mov dword [esp + 0xb8], 5
jmp 0x48b13b
mov dword [esp + 0xb8], 4
jmp 0x48b13b
mov dword [esp + 0xb8], 3
jmp 0x48b13b
push 4
push 0x50d530
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b13b
push edi
add esi, 8
push 0x50d4f0
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48ad38
mov dword [esp + 0x6c], 1
jmp 0x48b13b
push edi
push 0x50d4f8
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48ad58
mov dword [esp + 0x6c], 7
jmp 0x48b13b
push edi
push 0x50d528
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48ad78
mov dword [esp + 0x6c], 5
jmp 0x48b13b
push edi
push 0x50d510
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48ad94
mov dword [esp + 0x6c], edi
jmp 0x48b13b
push edi
push 0x50d518
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48adb4
mov dword [esp + 0x6c], 8
jmp 0x48b13b
push edi
push 0x50d500
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48add0
mov dword [esp + 0x6c], eax
jmp 0x48b13b
push edi
push 0x50d508
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48adf0
mov dword [esp + 0x6c], 6
jmp 0x48b13b
push edi
push 0x50d520
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b028
mov dword [esp + 0x6c], 3
jmp 0x48b13b
push 8
push 0x50d54c
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48ae3a
add esi, 0x10
lea edi, [esp + 0x44]
jmp 0x48ae5e
push 5
push 0x50d360
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48ae77
add esi, 0xa
lea edi, [esp + 0x7c]
mov ecx, esi
call fcn.00498780
test al, al
jne 0x48b13b
mov byte [esp + 0xf], 1
jmp 0x48b13b
push 6
push 0x50d570
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b13b
push 0xa
push 0x50d3c4
add esi, 0xc
mov byte [esp + 0x2f], 1
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48aecb
add esi, 0x14
mov byte [esp + 0x10], 1
mov byte [esp + 0x5e], al
jmp 0x48af1c
push 4
push 0x50d3ec
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48aeef
mov byte [esp + 0x10], 1
jmp 0x48af14
push 4
push 0x4f1444
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b028
mov byte [esp + 0x10], al
add esi, 8
mov byte [esp + 0x5e], 1
cmp byte [esp + 0xf], 0
mov dword [esp + 0x38], esi
jne 0x48b13b
cmp dword [esp + 0xb4], 0
jne 0x48b13b
push 0x207
lea edx, [esp + 0x2d4]
push esi
push edx
call fcn.004cb3f1
xor eax, eax
mov word [esp + 0x6ea], ax
add esp, 0xc
mov ebx, 0x4ebd9c
lea eax, [esp + 0x2d0]
call fcn.00409d30
test eax, eax
je 0x48af73
xor ecx, ecx
mov word [eax], cx
cmp byte [esp + 0x10], 0
je 0x48af92
lea esi, [esp + 0x2d0]
call fcn.0041ac40
mov dword [esp + 0xb4], eax
jmp 0x48b01c
push 0x207
lea edx, [esp + 0x2d4]
push esi
push edx
call fcn.004cb3f1
xor eax, eax
add esp, 0xc
cmp word [esp + 0x2d0], 0x3c
mov word [esp + 0x6de], ax
jne 0x48b028
mov ebx, 0x50d408
lea eax, [esp + 0x2d2]
call fcn.00409d30
test eax, eax
je 0x48b028
xor ecx, ecx
push ecx
push ecx
push ecx
mov word [eax], cx
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x2e0]
sub eax, edx
push 0
sar eax, 1
lea edx, [esp + 0x2e6]
lea eax, [esi + eax*2 + 2]
push 0
push edx
mov dword [esp + 0x54], eax
call fcn.004ad690
mov ecx, 1
add esp, 0x1c
mov dword [esp + 0xb4], eax
cmp dword [esp + 0x50], ecx
jne 0x48b01c
mov byte [esp + 0xf], cl
mov esi, dword [esp + 0x38]
test eax, eax
jne 0x48b13b
mov byte [esp + 0xf], 1
jmp 0x48b13b
mov eax, dword [0x51e6d4]
push edi
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x48b075
add esi, 4
cmp dword [ebp + 0x14], eax
jle 0x48b054
mov eax, dword [ebp + 0xc]
dec eax
jmp 0x48b056
xor eax, eax
add dword [ebp + 0x14], eax
cmp dword [ebp + 0x18], 0
jle 0x48b06b
mov eax, dword [ebp + 0x10]
dec eax
add dword [ebp + 0x18], eax
jmp 0x48b13b
xor eax, eax
add dword [ebp + 0x18], eax
jmp 0x48b13b
lea edi, [esi + 2]
mov eax, edi
call fcn.0040e320
test al, al
je 0x48b09c
push 0x10
push 0
push edi
call fcn.004cb270
add esp, 0xc
mov dword [esp + 0xa0], eax
jmp 0x48b13b
push edi
call fcn.004cae86
add esp, 4
mov dword [esp + 0xa0], eax
jmp 0x48b13b
mov eax, esi
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x48b0c0
cmp ecx, 9
jne 0x48b0c4
add eax, edi
jmp 0x48b0b3
movzx ecx, word [eax]
test cx, cx
je 0x48b111
cmp ecx, 0x2d
je 0x48b0d6
cmp ecx, 0x2b
jne 0x48b0d9
add eax, 2
cmp word [eax], 0x30
jne 0x48b111
movzx ecx, word [eax + 2]
cmp ecx, 0x78
je 0x48b0ed
cmp ecx, 0x58
jne 0x48b111
movzx ecx, word [eax + 4]
push ecx
call fcn.004cb07e
add esp, 4
test eax, eax
je 0x48b111
push 0x10
push 0
push esi
call fcn.004cb270
add esp, 0xc
mov dword [esp + 0x74], eax
jmp 0x48b11e
push esi
call fcn.004cae86
add esp, 4
mov dword [esp + 0x74], eax
test eax, eax
jns 0x48b12c
mov dword [esp + 0x74], 0
jmp 0x48b13b
cmp eax, 0xff
jle 0x48b13b
mov dword [esp + 0x74], 0xff
test esi, esi
je 0x48b2b1
movzx eax, word [esi]
test ax, ax
je 0x48b2b1
nop
movzx edx, ax
mov ecx, 0x4ebd9c
mov eax, 0x20
lea ecx, [ecx]
cmp dx, ax
je 0x48b182
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x48b160
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x48b150
jmp 0x48b2b1
lea eax, [esi + 2]
mov dword [ebp + 0x1c], eax
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x48b195
cmp ecx, 9
jne 0x48b19a
add eax, 2
jmp 0x48b188
cmp word [eax], 0x2a
mov dword [esp + 0x38], eax
je 0x48a9f0
mov ebx, dword [ebp + 0x1c]
cmp byte [esp + 0x27], 0
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov dword [esp + 0xb0], 0
jne 0x48b1db
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
add dword [ebp + 0xc], eax
add dword [ebp + 0x10], ecx
add esi, eax
add edi, ecx
mov eax, dword [esp + 0x7c]
cmp eax, 0xffffffff
jne 0x48b1ea
mov dword [esp + 0x44], eax
jmp 0x48b1f1
mov dword [esp + 0xa4], eax
cmp byte [esp + 0x4a], 0
je 0x48b21d
mov eax, ebx
call fcn.0040e320
test al, al
je 0x48b212
push 0x10
push 0
push ebx
call fcn.004cb90a
add esp, 0xc
jmp 0x48b247
push ebx
call fcn.004cae91
add esp, 4
jmp 0x48b247
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x9c]
push 0
push 0
push edx
mov edx, dword [esp + 0xac]
lea eax, [esp + 0xbc]
push eax
push ecx
push edx
push ebx
call fcn.004ad690
add esp, 0x1c
mov dword [esp + 0x98], eax
test eax, eax
je 0x48b2b1
cmp byte [esp + 0xf], 0
jne 0x48b2b1
cmp byte [esp + 0x27], 0
push 0
je 0x48b273
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebx, eax
mov dword [esp + 0xf4], ebx
jmp 0x48b282
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
mov dword [esp + 0xf4], eax
xor eax, eax
cmp ebx, eax
jne 0x48b326
cmp byte [esp + 0x4a], al
je 0x48b298
cmp byte [esp + 0x67], al
je 0x48b2b1
mov eax, dword [esp + 0x98]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esp + 0x98], 0
cmp byte [esp + 0x5e], 0
je 0x48b2ca
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x48b2ca
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x98]
test eax, eax
je 0x48b2ea
cmp byte [esp + 0x4a], 0
je 0x48b2e3
cmp byte [esp + 0x67], 0
je 0x48b2ea
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [0x5165ec]
test byte [ecx + 0x100], 1
jne 0x48b309
push 1
push 0
push 0xffffffffffffffff
push 0x4ebe14
jmp 0x48d849
mov ecx, dword [ebp + 8]
push 0x4f5ac4
push 0
push 0x4ebe14
call fcn.0042dac0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp dword [esp + 0xb0], 1
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xc4], eax
mov byte [esp + 0xf], al
jne 0x48b3dd
mov ecx, dword [esp + 0x98]
lea eax, [esp + 0x2a4]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x48b3bc
push 1
lea edx, [esp + 0x15]
push edx
mov edx, dword [esp + 0x2b8]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x2c]
push ecx
push edx
mov eax, ebx
call fcn.00438da0
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x2c8]
add esp, 0x14
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x2b0]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [esp + 0x98]
push edx
call fcn.004adfc0
add esp, 4
mov dword [esp + 0x98], eax
test eax, eax
je 0x48cbdb
jmp 0x48b3e4
mov eax, dword [esp + 0x98]
push 8
lea ecx, [esp + 0x15]
push ecx
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x2c]
push ecx
push eax
mov eax, ebx
call fcn.00438da0
add esp, 0x14
mov dword [esp + 0x4c], eax
test eax, eax
je 0x48cbdb
cmp byte [esp + 0x27], 0
jne 0x48b4b8
sub esi, dword [ebp + 0xc]
sub edi, dword [ebp + 0x10]
inc esi
push ebx
mov dword [esp + 0x38], esi
inc edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
mov dword [esp + 0xa0], esi
test esi, esi
je 0x48cbdb
mov edx, dword [esp + 0x34]
push edi
push edx
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esp + 0x9c], eax
test eax, eax
je 0x48cbdb
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0xc4], eax
test eax, eax
je 0x48cbdb
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x34]
push 0xcc0020
push ecx
push edx
push ebx
push edi
push eax
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x48cbdb
push 8
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0xa4]
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x24]
push eax
push ecx
mov eax, esi
jmp 0x48b59b
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [esp + 0xa0], eax
test eax, eax
je 0x48cbdb
cmp dword [ebp + 0xc], 0
mov ebx, dword [ebp + 0x10]
jne 0x48b505
test ebx, ebx
jne 0x48b505
test esi, esi
jne 0x48b505
test edi, edi
jne 0x48b505
push 8
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0xbc]
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x24]
push ecx
push edx
jmp 0x48b594
mov ecx, dword [esp + 0xb4]
lea eax, [esp + 0x2b8]
push eax
push 0x18
push ecx
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x48cbdb
test esi, esi
jne 0x48b541
test edi, edi
jne 0x48b541
mov edx, dword [esp + 0x2bc]
mov eax, dword [esp + 0x2c0]
dec edx
dec eax
mov edi, eax
mov esi, edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0xb4]
push 0xffffffffffffffff
push 0
push 0
push 0
push 0
push ebx
push eax
sub edi, ebx
sub esi, eax
inc edi
push edi
inc esi
push esi
push ecx
lea edx, [esp + 0xc4]
push edx
call fcn.0049b5e0
add esp, 0x2c
test al, al
je 0x48cbdb
push 8
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0xa4]
lea ecx, [esp + 0x88]
push ecx
lea edx, [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0xb4]
call fcn.00438da0
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x48cbdb
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
imul edi, dword [esp + 0x30]
imul edx, dword [esp + 0x80]
cmp byte [esp + 0x11], 0
mov dword [esp + 0x88], edi
mov dword [esp + 0x60], edx
jne 0x48b5df
cmp byte [esp + 0x10], 0
je 0x48b61d
or eax, 0xffffffff
mov ebx, 0xf8f8f8
cmp dword [esp + 0x44], eax
je 0x48b5f1
and dword [esp + 0x44], ebx
cmp dword [esp + 0x7c], eax
je 0x48b5fb
and dword [esp + 0x7c], ebx
xor eax, eax
test edx, edx
jle 0x48b609
and dword [ecx + eax*4], ebx
inc eax
cmp eax, edx
jl 0x48b601
xor esi, esi
test edi, edi
jle 0x48b621
mov eax, dword [esp + 0x4c]
and dword [eax + esi*4], ebx
inc esi
cmp esi, edi
jl 0x48b613
jmp 0x48b621
mov esi, dword [esp + 0x14]
cmp byte [esp + 0x1d], 0
mov ebx, dword [esp + 0x74]
mov byte [esp + 0x10], 0
mov byte [esp + 0x1f], 0
je 0x48b85a
xor esi, esi
mov byte [esp + 0x10], 1
test edx, edx
jle 0x48b6b9
mov eax, dword [esp + 0x3c]
lea esp, [esp]
mov eax, dword [eax + esi*4]
mov ecx, eax
mov edx, eax
shr ecx, 8
shr edx, 0x10
movzx eax, al
movzx ecx, cl
movzx edx, dl
add ecx, edx
add ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp byte [esp + 0x12], 0
je 0x48b69f
mov ecx, 0xff
sub ecx, ebx
cmp eax, ecx
mov eax, dword [esp + 0x3c]
sbb edx, edx
and edx, 0xff000001
add edx, 0xffffff
mov dword [eax + esi*4], edx
jmp 0x48b6b2
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [eax + esi*4], ecx
inc esi
cmp esi, dword [esp + 0x60]
jl 0x48b650
xor esi, esi
cmp dword [esp + 0x7c], 0xffffffff
mov byte [esp + 0x1f], 1
je 0x48b781
test edi, edi
jle 0x48b7f7
mov ecx, dword [esp + 0x4c]
jmp 0x48b6e0
mov eax, dword [ecx + esi*4]
and eax, 0xffffff
cmp eax, dword [esp + 0x7c]
jne 0x48b6f6
mov dword [ecx + esi*4], eax
jmp 0x48b776
cmp byte [esp + 0x12], 0
mov edx, eax
je 0x48b740
shr edx, 8
movzx ecx, dl
mov edx, eax
shr edx, 0x10
movzx edx, dl
add ecx, edx
movzx eax, al
add ecx, eax
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, 0xff
sub edx, ebx
cmp ecx, edx
mov ecx, dword [esp + 0x4c]
sbb eax, eax
and eax, 0xff000001
add eax, 0xffffff
mov dword [ecx + esi*4], eax
jmp 0x48b776
mov ecx, eax
shr edx, 0x10
shr ecx, 8
movzx edx, dl
movzx eax, al
movzx ecx, cl
add ecx, edx
add ecx, eax
mov eax, 0x55555556
imul ecx
mov ecx, dword [esp + 0x4c]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [ecx + esi*4], edx
inc esi
cmp esi, edi
jl 0x48b6e0
jmp 0x48b7f7
test edi, edi
jle 0x48b7f7
mov eax, dword [esp + 0x4c]
lea esp, [esp]
mov eax, dword [eax + esi*4]
mov ecx, eax
mov edx, eax
shr ecx, 8
shr edx, 0x10
movzx eax, al
movzx ecx, cl
movzx edx, dl
add ecx, edx
add ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp byte [esp + 0x12], 0
je 0x48b7df
mov ecx, 0xff
sub ecx, ebx
cmp eax, ecx
mov eax, dword [esp + 0x4c]
sbb edx, edx
and edx, 0xff000001
add edx, 0xffffff
mov dword [eax + esi*4], edx
jmp 0x48b7f2
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x4c]
mov dword [eax + esi*4], ecx
inc esi
cmp esi, edi
jl 0x48b790
cmp dword [esp + 0x44], 0xffffffff
je 0x48b847
mov eax, dword [esp + 0x44]
mov edx, eax
shr edx, 8
movzx ecx, dl
mov edx, eax
shr edx, 0x10
movzx eax, al
movzx edx, dl
add ecx, edx
add ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp byte [esp + 0x12], 0
je 0x48b88f
mov ecx, 0xff
sub ecx, ebx
cmp eax, ecx
sbb eax, eax
and eax, 0xff000001
add eax, 0xffffff
mov dword [esp + 0x44], eax
cmp byte [esp + 0x12], 0
je 0x48b85a
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x6c], 3
jne 0x48b8a1
cmp byte [esp + 0x1f], 0
jne 0x48ba4e
xor esi, esi
test edi, edi
jle 0x48ba4e
mov eax, dword [esp + 0x4c]
add eax, 3
mov ecx, edi
mov esi, edi
mov byte [eax], 0
add eax, 4
dec ecx
jne 0x48b881
jmp 0x48ba4e
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
mov dword [esp + 0x44], ecx
jmp 0x48b85a
lea edx, [edi*4]
push edx
call fcn.004c9c38
add esp, 4
mov dword [esp + 0xc0], eax
test eax, eax
je 0x48cbdf
mov eax, dword [esp + 0x60]
lea ecx, [eax*4]
push ecx
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x94], eax
test eax, eax
je 0x48cbdf
cmp byte [esp + 0x1f], 0
jne 0x48b913
test edi, edi
jle 0x48b931
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x4c]
sub ecx, eax
mov edx, edi
lea ecx, [ecx]
mov esi, dword [ecx + eax]
and esi, 0xffffff
mov dword [eax], esi
add eax, 4
dec edx
jne 0x48b900
jmp 0x48b931
test edi, edi
jle 0x48b931
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x4c]
sub ecx, eax
mov edx, edi
mov esi, dword [eax + ecx]
mov dword [eax], esi
add eax, 4
dec edx
jne 0x48b926
xor esi, esi
cmp byte [esp + 0x10], 0
jne 0x48b966
cmp dword [esp + 0x60], esi
jle 0x48b992
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x60]
sub ecx, eax
mov esi, edx
mov edi, dword [ecx + eax]
and edi, 0xffffff
mov dword [eax], edi
add eax, 4
dec edx
jne 0x48b953
jmp 0x48b98b
cmp dword [esp + 0x60], esi
jle 0x48b992
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x60]
sub ecx, eax
mov esi, edx
nop
mov edi, dword [eax + ecx]
mov dword [eax], edi
add eax, 4
dec edx
jne 0x48b980
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xe0], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x100], ecx
lea ecx, [esp + 0xf8]
mov dword [esp + 0xe8], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0xf8], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x108], eax
push ecx
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0xe4]
mov byte [esp + 0x14], 1
mov dword [esp + 0xf0], edi
mov dword [esp + 0x108], edx
call fcn.0048dca0
add esp, 4
cmp dword [esp + 0x6c], 4
jle 0x48ba4e
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0xbc]
neg edx
sbb dl, dl
and dl, byte [esp + 0x13]
mov byte [esp + 0x13], dl
je 0x48ba90
mov eax, dword [esp + 0x78]
test eax, eax
je 0x48ba70
inc eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
lea ecx, [eax*4]
push ecx
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x54], eax
test eax, eax
je 0x48cbdf
mov ecx, dword [esp + 0x44]
cmp ecx, 0xffffffff
je 0x48c645
cmp ebx, 1
jge 0x48beeb
cmp byte [esp + 0x10], 0
mov edx, dword [esp + 0x60]
jne 0x48bac9
test edx, edx
jle 0x48bac9
mov eax, dword [esp + 0x3c]
add eax, 3
mov ecx, edx
mov edi, edi
mov byte [eax], 0
add eax, 4
dec ecx
jne 0x48bac0
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x90], eax
je 0x48bcfc
cmp edx, eax
jle 0x48cba5
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
add ecx, ecx
add ecx, ecx
mov edx, dword [ecx + edx]
cmp edx, eax
je 0x48bb1d
mov esi, dword [esp + 0x90]
cmp dword [esi], 0
jne 0x48bb1d
cmp eax, dword [esp + 0x7c]
jne 0x48bcdd
cmp edx, dword [esp + 0x44]
je 0x48bcdd
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x18]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x80]
sub edx, eax
mov dword [esp + 0x8c], eax
cmp dword [esp + 0x30], edx
jg 0x48bcdd
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x58]
cmp dword [esp + 0x20], eax
jg 0x48bcdd
mov esi, dword [esp + 0x14]
xor eax, eax
mov byte [esp + 0xf], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x70], eax
mov edi, esi
cmp dword [esp + 0x88], eax
jle 0x48bc05
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x90]
sub ebx, eax
mov byte [esp + 0xf], 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0xb0], ebx
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + edi*4]
mov ecx, dword [eax]
cmp edx, ecx
je 0x48bbc3
cmp dword [ebx + eax], 0
jne 0x48bbc3
cmp ecx, dword [esp + 0x7c]
jne 0x48bcf5
cmp edx, dword [esp + 0x44]
je 0x48bcf5
mov ebx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, dword [esp + 0x20]
jge 0x48bbd5
inc edi
jmp 0x48bbf0
mov edx, dword [esp + 0x18]
lea ecx, [edx*4]
add dword [esp + 0x34], ecx
add esi, edx
mov dword [esp + 0x28], 0
mov edi, esi
mov ecx, dword [esp + 0x70]
inc ecx
add eax, 4
mov dword [esp + 0x70], ecx
cmp ecx, dword [esp + 0x88]
jl 0x48bb95
cmp byte [esp + 0x13], 0
je 0x48cbd3
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x68]
cmp ebx, eax
jne 0x48bc67
lea edx, [eax*4 + 0xfa0]
push edx
call fcn.004c9c38
mov esi, eax
add esp, 4
test esi, esi
je 0x48cbdb
mov edi, dword [esp + 0x54]
lea eax, [ebx*4]
push eax
push edi
push esi
call fcn.004d23c0
add esp, 0xc
push edi
call fcn.004ca991
mov ecx, dword [esp + 0x6c]
add esp, 4
add ecx, 0x3e8
mov dword [esp + 0x54], esi
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x58]
mov dword [edx + ebx*4], eax
mov edx, dword [esp + 0x30]
inc ebx
lea eax, [ecx + edx]
mov dword [esp + 0x2c], ebx
cmp ecx, eax
jge 0x48bccb
mov edi, dword [esp + 0x3c]
mov edx, ecx
imul edx, dword [esp + 0x18]
add edx, dword [esp + 0x58]
sub eax, ecx
lea edx, [edi + edx*4]
mov ebx, eax
cmp dword [esp + 0x58], esi
jge 0x48bcbe
mov eax, dword [esp + 0xa4]
mov ecx, esi
sub ecx, dword [esp + 0x58]
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
add eax, eax
add eax, eax
add edx, eax
dec ebx
jne 0x48bca7
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x48bcdd
cmp eax, dword [esp + 0x2c]
jle 0x48cba5
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x60]
jl 0x48bae4
jmp 0x48cba5
mov byte [esp + 0xf], 0
jmp 0x48bcdd
cmp edx, eax
jle 0x48cba5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
add ecx, ecx
add ecx, ecx
mov edx, dword [ecx + eax]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
cmp edx, eax
je 0x48bd31
cmp eax, dword [esp + 0x7c]
jne 0x48becc
cmp edx, dword [esp + 0x44]
je 0x48becc
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x18]
mov ebx, edx
mov edx, dword [esp + 0x80]
mov esi, eax
sub edx, esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x8c], esi
cmp dword [esp + 0x30], edx
jg 0x48becc
mov eax, dword [esp + 0x18]
sub eax, ebx
cmp dword [esp + 0x20], eax
jg 0x48becc
mov edx, dword [esp + 0x14]
xor edi, edi
mov byte [esp + 0xf], 1
mov dword [esp + 0x70], edi
cmp dword [esp + 0x88], edi
jle 0x48bdf3
mov byte [esp + 0xf], 1
mov esi, edx
mov dword [esp + 0x34], ecx
mov ebx, edi
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [ecx + edx*4]
mov eax, dword [eax + ebx*4]
cmp ecx, eax
je 0x48bdbb
cmp eax, dword [esp + 0x7c]
jne 0x48bee4
cmp ecx, dword [esp + 0x44]
je 0x48bee4
mov ebx, dword [esp + 0x70]
inc edi
cmp edi, dword [esp + 0x20]
jge 0x48bdc5
inc edx
jmp 0x48bdda
mov ecx, dword [esp + 0x18]
lea eax, [ecx*4]
add dword [esp + 0x34], eax
xor edi, edi
add esi, ecx
mov edx, esi
inc ebx
mov dword [esp + 0x70], ebx
cmp ebx, dword [esp + 0x88]
jl 0x48bd91
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x8c]
cmp byte [esp + 0x13], 0
je 0x48cbd3
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x2c], eax
jne 0x48be5a
lea ecx, [eax*4 + 0xfa0]
push ecx
call fcn.004c9c38
mov edi, eax
add esp, 4
test edi, edi
je 0x48cbdb
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
lea eax, [edx*4]
push eax
push ecx
push edi
call fcn.004d23c0
mov edx, dword [esp + 0x60]
add esp, 0xc
push edx
call fcn.004ca991
mov eax, dword [esp + 0x6c]
add esp, 4
add eax, 0x3e8
mov dword [esp + 0x54], edi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x54]
mov dword [edx + eax*4], ecx
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
add eax, esi
cmp esi, eax
jge 0x48beba
mov edx, dword [esp + 0x3c]
mov ecx, esi
imul ecx, dword [esp + 0x18]
add ecx, ebx
sub eax, esi
lea edx, [edx + ecx*4]
mov esi, eax
lea esp, [esp]
mov eax, dword [esp + 0x20]
add eax, ebx
cmp ebx, eax
jge 0x48bead
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xa4]
add ecx, ebx
sub ecx, ebx
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
add eax, eax
add eax, eax
add edx, eax
dec esi
jne 0x48be90
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x48becc
cmp eax, dword [esp + 0x2c]
jle 0x48cba5
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x60]
jl 0x48bd04
jmp 0x48cba5
mov byte [esp + 0xf], 0
jmp 0x48becc
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov edx, ecx
shr edx, 8
mov byte [esp + 0x11], al
cmp ebx, esi
jle 0x48bf0a
mov byte [esp + 0x87], 0
jmp 0x48bf13
sub al, bl
mov byte [esp + 0x87], al
movzx eax, dl
mov dword [esp + 0x50], eax
cmp ebx, eax
jle 0x48bf25
mov byte [esp + 0x41], 0
jmp 0x48bf2d
mov al, dl
sub al, bl
mov byte [esp + 0x41], al
movzx edi, cl
cmp ebx, edi
jle 0x48bf3b
mov byte [esp + 0x4b], 0
jmp 0x48bf43
mov al, cl
sub al, bl
mov byte [esp + 0x4b], al
mov eax, 0xff
sub eax, esi
cmp ebx, eax
jle 0x48bf58
mov byte [esp + 0x86], 0xff
jmp 0x48bf65
mov al, bl
add al, byte [esp + 0x11]
mov byte [esp + 0x86], al
mov eax, 0xff
sub eax, dword [esp + 0x50]
cmp ebx, eax
jle 0x48bf79
mov byte [esp + 0x43], 0xff
jmp 0x48bf80
lea eax, [edx + ebx]
mov byte [esp + 0x43], al
mov edx, 0xff
sub edx, edi
cmp ebx, edx
jle 0x48bf92
mov byte [esp + 0x42], 0xff
jmp 0x48bf98
add bl, cl
mov byte [esp + 0x42], bl
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x90], eax
je 0x48c301
cmp dword [esp + 0x60], eax
jle 0x48cba5
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x18]
mov ecx, dword [esp + 0x80]
sub ecx, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x8c], eax
cmp dword [esp + 0x30], ecx
jg 0x48c2e2
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x58]
cmp dword [esp + 0x20], edx
jg 0x48c2e2
mov edi, dword [esp + 0x14]
xor eax, eax
mov byte [esp + 0xf], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x44], edi
cmp dword [esp + 0x88], eax
jle 0x48c1f2
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
mov ecx, edi
mov dword [esp + 0x50], ecx
add ecx, ecx
add ecx, ecx
add edx, edx
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x90]
add edx, edx
mov esi, eax
sub ecx, eax
mov byte [esp + 0xf], 1
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edx
mov dword [esp + 0xb0], ecx
mov edi, edi
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + edi*4 + 2]
mov al, byte [ecx + edi*4 + 1]
mov cl, byte [ecx + edi*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x26], al
mov byte [esp + 0x11], cl
cmp dword [esi], edx
jne 0x48c0b9
mov dl, byte [esp + 0x1e]
cmp dl, byte [esp + 0x87]
jb 0x48c1a0
cmp dl, byte [esp + 0x86]
ja 0x48c1a0
cmp al, byte [esp + 0x41]
jb 0x48c1a0
cmp al, byte [esp + 0x43]
ja 0x48c1a0
cmp cl, byte [esp + 0x4b]
jb 0x48c1a0
cmp cl, byte [esp + 0x42]
ja 0x48c1a0
mov al, byte [esi + 2]
mov cl, byte [esi]
mov bl, byte [esi + 1]
mov edx, dword [esp + 0x74]
movzx esi, al
mov byte [esp + 0x12], cl
cmp edx, esi
jle 0x48c0d7
mov byte [esp + 0x5f], 0
jmp 0x48c0df
mov cl, al
sub cl, dl
mov byte [esp + 0x5f], cl
movzx ecx, bl
cmp edx, ecx
jle 0x48c0ed
mov byte [esp + 0x1d], 0
jmp 0x48c0f5
mov cl, bl
sub cl, dl
mov byte [esp + 0x1d], cl
movzx edi, byte [esp + 0x12]
cmp edx, edi
jle 0x48c105
mov byte [esp + 0x10], 0
jmp 0x48c10f
mov cl, byte [esp + 0x12]
sub cl, dl
mov byte [esp + 0x10], cl
mov ecx, 0xff
sub ecx, esi
cmp edx, ecx
jle 0x48c121
mov byte [esp + 0x1f], 0xff
jmp 0x48c128
lea ecx, [eax + edx]
mov byte [esp + 0x1f], cl
movzx eax, bl
mov ecx, 0xff
sub ecx, eax
cmp edx, ecx
jle 0x48c13b
or cl, 0xff
jmp 0x48c13e
lea ecx, [ebx + edx]
mov eax, 0xff
sub eax, edi
cmp edx, eax
jle 0x48c14d
or al, 0xff
jmp 0x48c153
mov al, dl
add al, byte [esp + 0x12]
mov dl, byte [esp + 0x5f]
cmp byte [esp + 0x1e], dl
jb 0x48c183
mov dl, byte [esp + 0x1e]
cmp dl, byte [esp + 0x1f]
ja 0x48c183
mov dl, byte [esp + 0x26]
cmp dl, byte [esp + 0x1d]
jb 0x48c183
cmp dl, cl
ja 0x48c183
mov cl, byte [esp + 0x11]
cmp cl, byte [esp + 0x10]
jb 0x48c183
cmp cl, al
jbe 0x48c198
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xb0]
cmp dword [eax + ecx], 0
je 0x48c2fa
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x20]
jge 0x48c1b2
inc edi
jmp 0x48c1d1
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x50]
add dword [esp + 0xac], edx
add edi, dword [esp + 0x18]
mov dword [esp + 0x28], 0
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0x70]
inc eax
add esi, 4
mov dword [esp + 0x44], edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x34], esi
cmp eax, dword [esp + 0x88]
jl 0x48c050
cmp byte [esp + 0x13], 0
je 0x48cbd3
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x2c]
cmp edi, eax
jne 0x48c254
lea eax, [eax*4 + 0xfa0]
push eax
call fcn.004c9c38
mov esi, eax
add esp, 4
test esi, esi
je 0x48cbdb
lea ecx, [edi*4]
mov edi, dword [esp + 0x54]
push ecx
push edi
push esi
call fcn.004d23c0
add esp, 0xc
push edi
call fcn.004ca991
mov edx, dword [esp + 0x6c]
add esp, 4
add edx, 0x3e8
mov dword [esp + 0x54], esi
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x58]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x20]
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
add eax, ecx
lea esi, [edi + edx]
cmp ecx, eax
jge 0x48c2d0
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x8c]
lea edx, [ecx*4]
mov dword [esp + 0x38], edx
mov edx, ebx
imul edx, ecx
mov ecx, dword [esp + 0x3c]
add edx, edi
sub eax, ebx
lea edx, [ecx + edx*4]
mov ebx, eax
lea esp, [esp]
cmp edi, esi
jge 0x48c2c9
mov eax, dword [esp + 0xa4]
mov ecx, esi
sub ecx, dword [esp + 0x58]
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x58]
add edx, dword [esp + 0x38]
dec ebx
jne 0x48c2b0
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x48c2e2
cmp eax, dword [esp + 0x2c]
jle 0x48cba5
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x60]
jl 0x48bfb5
jmp 0x48cba5
mov byte [esp + 0xf], 0
jmp 0x48c2e2
cmp dword [esp + 0x60], eax
jle 0x48cba5
jmp 0x48c310
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x18]
mov ebx, edx
mov edx, dword [esp + 0x80]
mov ecx, eax
sub edx, ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x8c], ecx
cmp dword [esp + 0x30], edx
jg 0x48c626
mov eax, dword [esp + 0x18]
sub eax, ebx
cmp dword [esp + 0x20], eax
jg 0x48c626
mov esi, dword [esp + 0x14]
xor edi, edi
mov byte [esp + 0xf], 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x44], esi
cmp dword [esp + 0x88], edi
jle 0x48c548
mov ecx, dword [esp + 0x18]
mov eax, esi
mov dword [esp + 0xac], eax
add eax, eax
lea edx, [ecx*4]
add eax, eax
mov byte [esp + 0xf], 1
mov dword [esp + 0x38], edx
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + esi*4 + 2]
mov al, byte [ecx + esi*4 + 1]
mov ebx, dword [esp + 0x4c]
mov cl, byte [ecx + esi*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x26], al
mov byte [esp + 0x11], cl
cmp dword [ebx + edi*4], edx
jne 0x48c402
mov dl, byte [esp + 0x1e]
cmp dl, byte [esp + 0x87]
jb 0x48c4f3
cmp dl, byte [esp + 0x86]
ja 0x48c4f3
cmp al, byte [esp + 0x41]
jb 0x48c4f3
cmp al, byte [esp + 0x43]
ja 0x48c4f3
cmp cl, byte [esp + 0x4b]
jb 0x48c4f3
cmp cl, byte [esp + 0x42]
ja 0x48c4f3
mov esi, dword [esp + 0x4c]
mov al, byte [esi + edi*4 + 2]
mov cl, byte [esi + edi*4]
mov bl, byte [esi + edi*4 + 1]
mov edx, dword [esp + 0x74]
movzx esi, al
mov byte [esp + 0x12], cl
cmp edx, esi
jle 0x48c427
mov byte [esp + 0x5f], 0
jmp 0x48c42f
mov cl, al
sub cl, dl
mov byte [esp + 0x5f], cl
movzx ecx, bl
cmp edx, ecx
jle 0x48c43d
mov byte [esp + 0x1d], 0
jmp 0x48c445
mov cl, bl
sub cl, dl
mov byte [esp + 0x1d], cl
movzx edi, byte [esp + 0x12]
cmp edx, edi
jle 0x48c455
mov byte [esp + 0x10], 0
jmp 0x48c45f
mov cl, byte [esp + 0x12]
sub cl, dl
mov byte [esp + 0x10], cl
mov ecx, 0xff
sub ecx, esi
cmp edx, ecx
jle 0x48c471
mov byte [esp + 0x1f], 0xff
jmp 0x48c478
lea ecx, [eax + edx]
mov byte [esp + 0x1f], cl
movzx eax, bl
mov ecx, 0xff
sub ecx, eax
cmp edx, ecx
jle 0x48c48b
or cl, 0xff
jmp 0x48c48e
lea ecx, [ebx + edx]
mov eax, 0xff
sub eax, edi
cmp edx, eax
jle 0x48c49d
or al, 0xff
jmp 0x48c4a3
mov al, dl
add al, byte [esp + 0x12]
mov dl, byte [esp + 0x5f]
cmp byte [esp + 0x1e], dl
jb 0x48c63e
mov dl, byte [esp + 0x1e]
cmp dl, byte [esp + 0x1f]
ja 0x48c63e
mov dl, byte [esp + 0x26]
cmp dl, byte [esp + 0x1d]
jb 0x48c63e
cmp dl, cl
ja 0x48c63e
mov cl, byte [esp + 0x11]
cmp cl, byte [esp + 0x10]
jb 0x48c63e
cmp cl, al
ja 0x48c63e
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x58]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x20]
jge 0x48c509
inc esi
jmp 0x48c52b
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0xac]
add dword [esp + 0x50], eax
add esi, dword [esp + 0x18]
mov dword [esp + 0x28], 0
mov dword [esp + 0xac], esi
inc edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x70], edi
cmp edi, dword [esp + 0x88]
jl 0x48c394
mov ecx, dword [esp + 0x8c]
cmp byte [esp + 0x13], 0
je 0x48cbd3
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x2c], eax
jne 0x48c5b3
lea ecx, [eax*4 + 0xfa0]
push ecx
call fcn.004c9c38
mov esi, eax
add esp, 4
test esi, esi
je 0x48cbdb
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x54]
lea eax, [edx*4]
push eax
push edi
push esi
call fcn.004d23c0
add esp, 0xc
push edi
call fcn.004ca991
mov ecx, dword [esp + 0x6c]
add esp, 4
add ecx, 0x3e8
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x54], esi
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x54]
mov dword [esi + eax*4], edx
mov edx, dword [esp + 0x20]
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
add eax, ecx
lea esi, [ebx + edx]
cmp ecx, eax
jge 0x48c614
imul ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
add ecx, ebx
sub eax, dword [esp + 0x8c]
lea edx, [edx + ecx*4]
mov dword [esp + 0x50], eax
cmp ebx, esi
jge 0x48c604
mov eax, dword [esp + 0xa4]
mov ecx, esi
sub ecx, ebx
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
add eax, eax
add eax, eax
add edx, eax
dec dword [esp + 0x50]
jne 0x48c5f1
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x48c626
cmp eax, dword [esp + 0x2c]
jle 0x48cba5
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x60]
jl 0x48c310
jmp 0x48cba5
mov byte [esp + 0xf], 0
jmp 0x48c626
cmp ebx, 1
jge 0x48c88d
cmp byte [esp + 0x10], 0
mov edx, dword [esp + 0x60]
jne 0x48c66f
test edx, edx
jle 0x48c66f
mov eax, dword [esp + 0x3c]
add eax, 3
mov ecx, edx
mov byte [eax], 0
add eax, 4
dec ecx
jne 0x48c666
mov dword [esp + 0x14], 0
test edx, edx
jle 0x48cba5
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x3c]
add edi, edi
add edi, edi
cmp dword [edi + ecx], eax
je 0x48c6b0
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x48c6a6
cmp dword [ecx], 0
jne 0x48c6b0
cmp eax, dword [esp + 0x7c]
jne 0x48c86e
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x18]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x80]
sub edx, eax
mov dword [esp + 0x8c], eax
cmp dword [esp + 0x30], edx
jg 0x48c86e
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x58]
cmp dword [esp + 0x20], eax
jg 0x48c86e
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov byte [esp + 0xf], 1
mov dword [esp + 0x70], ebx
mov esi, ecx
cmp dword [esp + 0x88], ebx
jle 0x48c784
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x90]
sub edx, eax
mov byte [esp + 0xf], 1
mov dword [esp + 0x50], edi
mov dword [esp + 0xb0], edx
mov edx, dword [eax]
mov edi, dword [esp + 0x3c]
cmp dword [edi + esi*4], edx
je 0x48c750
cmp dword [esp + 0x90], 0
je 0x48c746
mov edi, dword [esp + 0xb0]
cmp dword [eax + edi], 0
jne 0x48c750
cmp edx, dword [esp + 0x7c]
jne 0x48c886
inc ebx
cmp ebx, dword [esp + 0x20]
jge 0x48c75a
inc esi
jmp 0x48c76f
mov edx, dword [esp + 0x18]
lea esi, [edx*4]
add dword [esp + 0x50], esi
xor ebx, ebx
add ecx, edx
mov esi, ecx
mov edx, dword [esp + 0x70]
inc edx
add eax, 4
mov dword [esp + 0x70], edx
cmp edx, dword [esp + 0x88]
jl 0x48c724
cmp byte [esp + 0x13], 0
je 0x48cbd3
mov ebx, dword [esp + 0x68]
cmp dword [esp + 0x2c], ebx
jne 0x48c7e4
lea ecx, [ebx*4 + 0xfa0]
push ecx
call fcn.004c9c38
mov esi, eax
add esp, 4
test esi, esi
je 0x48cbdb
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x54]
lea eax, [edx*4]
push eax
push edi
push esi
call fcn.004d23c0
add esp, 0xc
push edi
call fcn.004ca991
add esp, 4
add ebx, 0x3e8
mov dword [esp + 0x54], esi
mov dword [esp + 0x68], ebx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x58]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x20]
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
add eax, edi
lea esi, [ebx + ecx]
cmp edi, eax
jge 0x48c85c
mov ecx, dword [esp + 0x18]
lea edx, [ecx*4]
mov dword [esp + 0x38], edx
mov edx, edi
imul edx, ecx
mov ecx, dword [esp + 0x3c]
add edx, ebx
sub eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xa4]
lea edx, [ecx + edx*4]
mov edi, edi
cmp ebx, esi
jge 0x48c852
mov ebx, dword [esp + 0x58]
mov ecx, esi
sub ecx, dword [esp + 0x58]
mov edi, edx
rep stosd dword es:[edi], eax
add edx, dword [esp + 0x38]
dec dword [esp + 0x50]
jne 0x48c840
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x48c86e
cmp eax, dword [esp + 0x2c]
jle 0x48cba5
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x60]
jl 0x48c67f
jmp 0x48cba5
mov byte [esp + 0xf], 0
jmp 0x48c86e
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x60], ecx
jle 0x48cba5
lea ecx, [ecx]
mov eax, ecx
cdq
idiv dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x80]
sub eax, edi
mov dword [esp + 0x58], edx
mov dword [esp + 0x8c], edi
cmp dword [esp + 0x30], eax
jg 0x48cb96
mov eax, dword [esp + 0x18]
sub eax, edx
cmp dword [esp + 0x20], eax
jg 0x48cb96
xor eax, eax
mov esi, ecx
mov byte [esp + 0xf], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x44], esi
cmp dword [esp + 0x88], eax
jle 0x48caae
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x4c]
lea eax, [edx*4]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x90]
add ecx, ecx
add ecx, ecx
sub eax, edi
mov byte [esp + 0xf], 1
mov dword [esp + 0x34], edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0xb0], eax
mov al, byte [edi + 2]
mov cl, byte [edi]
mov dl, byte [edi + 1]
movzx edi, al
mov byte [esp + 0x11], cl
cmp ebx, edi
jle 0x48c94e
mov byte [esp + 0x26], 0
jmp 0x48c956
mov cl, al
sub cl, bl
mov byte [esp + 0x26], cl
movzx ecx, dl
cmp ebx, ecx
jle 0x48c964
mov byte [esp + 0x4b], 0
jmp 0x48c96c
mov cl, dl
sub cl, bl
mov byte [esp + 0x4b], cl
movzx ecx, byte [esp + 0x11]
mov dword [esp + 0xe0], ecx
cmp ebx, ecx
jle 0x48c983
mov byte [esp + 0x41], 0
jmp 0x48c98d
mov cl, byte [esp + 0x11]
sub cl, bl
mov byte [esp + 0x41], cl
mov ecx, 0xff
sub ecx, edi
cmp ebx, ecx
jle 0x48c99f
mov byte [esp + 0x42], 0xff
jmp 0x48c9a6
lea ecx, [eax + ebx]
mov byte [esp + 0x42], cl
movzx eax, dl
mov ecx, 0xff
sub ecx, eax
cmp ebx, ecx
jle 0x48c9bb
mov byte [esp + 0x43], 0xff
jmp 0x48c9c2
lea eax, [edx + ebx]
mov byte [esp + 0x43], al
mov edx, 0xff
sub edx, dword [esp + 0xe0]
cmp ebx, edx
jle 0x48c9d9
mov byte [esp + 0x11], 0xff
jmp 0x48c9e3
mov al, bl
add al, byte [esp + 0x11]
mov byte [esp + 0x11], al
mov edx, dword [esp + 0x3c]
mov al, byte [edx + esi*4 + 2]
mov cl, byte [edx + esi*4 + 1]
mov edi, dword [esp + 0x34]
mov dl, byte [edx + esi*4]
mov esi, dword [edi]
cmp esi, dword [esp + 0x7c]
je 0x48ca3d
cmp al, byte [esp + 0x26]
jb 0x48ca22
cmp al, byte [esp + 0x42]
ja 0x48ca22
cmp cl, byte [esp + 0x4b]
jb 0x48ca22
cmp cl, byte [esp + 0x43]
ja 0x48ca22
cmp dl, byte [esp + 0x41]
jb 0x48ca22
cmp dl, byte [esp + 0x11]
jbe 0x48ca39
cmp dword [esp + 0x90], 0
je 0x48ca9d
mov eax, dword [esp + 0xb0]
cmp dword [edi + eax], 0
je 0x48ca9d
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x20]
jge 0x48ca57
mov esi, dword [esp + 0x44]
inc esi
mov dword [esp + 0x44], esi
jmp 0x48ca7f
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xac]
add dword [esp + 0x50], ecx
add eax, dword [esp + 0x18]
mov dword [esp + 0x28], 0
mov dword [esp + 0xac], eax
mov esi, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x70]
inc eax
add edi, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x34], edi
cmp eax, dword [esp + 0x88]
jge 0x48caa7
jmp 0x48c934
mov byte [esp + 0xf], 0
jmp 0x48cb8e
mov edi, dword [esp + 0x8c]
cmp byte [esp + 0x13], 0
je 0x48cbd3
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x2c], eax
jne 0x48cb12
lea edx, [eax*4 + 0xfa0]
push edx
call fcn.004c9c38
mov esi, eax
add esp, 4
test esi, esi
je 0x48cbdb
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x54]
lea ecx, [eax*4]
push ecx
push ebx
push esi
call fcn.004d23c0
add esp, 0xc
push ebx
call fcn.004ca991
mov edx, dword [esp + 0x6c]
add esp, 4
add edx, 0x3e8
mov dword [esp + 0x54], esi
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x20]
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
add eax, edi
lea esi, [ecx + edx]
cmp edi, eax
jge 0x48cb80
mov edx, dword [esp + 0x18]
lea ebx, [edx*4]
mov dword [esp + 0x38], ebx
mov ebx, edi
imul ebx, edx
mov edx, dword [esp + 0x3c]
add ebx, ecx
sub eax, edi
lea edx, [edx + ebx*4]
mov ebx, eax
lea esp, [esp]
cmp ecx, esi
jge 0x48cb79
mov eax, dword [esp + 0xa4]
mov ecx, esi
sub ecx, dword [esp + 0x58]
mov edi, edx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x58]
add edx, dword [esp + 0x38]
dec ebx
jne 0x48cb60
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x48cb8e
cmp eax, dword [esp + 0x2c]
jle 0x48cba5
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x60]
jl 0x48c8a0
cmp byte [esp + 0x13], 0
je 0x48cbb6
cmp dword [esp + 0x2c], 0
setne byte [esp + 0xf]
cmp byte [esp + 0xf], 0
jne 0x48cbd3
mov eax, dword [0x51b6d0]
push 1
push 0
push 0xffffffffffffffff
push 0x4eb75c
push eax
call fcn.004aefb0
mov byte [esp + 0xab], 1
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0xa4], ecx
cmp byte [esp + 0xf], al
je 0x48cc9a
mov edx, dword [esp + 0x6c]
cmp edx, 4
jle 0x48cc33
mov ebx, dword [esp + 0x80]
mov eax, edi
mov edi, ecx
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x80], eax
cmp dword [esp + 0xbc], 0
je 0x48cc9a
mov eax, dword [esp + 0x7c]
cmp eax, 0xffffffff
je 0x48cc9a
push ecx
push eax
cmp edx, 3
jne 0x48cc6e
mov ecx, dword [esp + 0x54]
push ecx
lea edx, [esp + 0xb0]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x90]
push edx
jmp 0x48cc90
mov eax, dword [esp + 0xc8]
push eax
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x90]
push ecx
mov edx, edi
call fcn.0048d920
add esp, 0x1c
cmp byte [esp + 0x27], 0
mov ebx, dword [sym.imp.GDI32.dll_DeleteDC]
je 0x48ccb3
mov edx, dword [esp + 0xf4]
push edx
call ebx
jmp 0x48ccc3
mov eax, dword [esp + 0xf4]
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [esp + 0x5e], 0
je 0x48cce2
cmp dword [esp + 0xb4], 0
je 0x48cce2
mov ecx, dword [esp + 0xb4]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [esp + 0x98], 0
je 0x48cd08
cmp byte [esp + 0x4a], 0
je 0x48ccfa
cmp byte [esp + 0x67], 0
je 0x48cd08
mov edx, dword [esp + 0x98]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [esp + 0xa0], 0
je 0x48cd3c
cmp dword [esp + 0xc4], 0
je 0x48cd32
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xa0]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esp + 0xa0]
push edx
call ebx
cmp dword [esp + 0x9c], 0
je 0x48cd54
mov eax, dword [esp + 0x9c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [esp + 0xc0], 0
je 0x48cd6e
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.004ca991
add esp, 4
cmp dword [esp + 0x94], 0
je 0x48cd88
mov edx, dword [esp + 0x94]
push edx
call fcn.004ca991
add esp, 4
mov bl, byte [esp + 0xf]
test bl, bl
jne 0x48cdac
cmp dword [esp + 0x54], 0
je 0x48cdac
mov eax, dword [esp + 0x54]
push eax
call fcn.004ca991
add esp, 4
mov dword [esp + 0x54], 0
cmp dword [esp + 0x4c], 0
je 0x48cdc0
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004ca991
add esp, 4
cmp dword [esp + 0x90], 0
je 0x48cdda
mov edx, dword [esp + 0x90]
push edx
call fcn.004ca991
add esp, 4
cmp dword [esp + 0x3c], 0
je 0x48cdee
mov eax, dword [esp + 0x3c]
push eax
call fcn.004ca991
add esp, 4
cmp byte [esp + 0xab], 0
jne 0x48ce86
mov esi, dword [0x51b6d0]
cmp byte [esi + 0x17], 0
jne 0x48ce0b
mov esi, dword [esi + 0xc]
mov al, byte [esi + 0x15]
test al, 2
je 0x48ce21
and al, 0x3d
mov byte [esi + 0x15], al
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov al, byte [esi + 0x15]
and al, 0x9b
or al, 0x18
mov dword [esi], 2
mov dword [esi + 4], 0
mov byte [esi + 0x15], al
jns 0x48ce53
mov eax, esi
call fcn.00401610
and byte [esi + 0x15], 0x8f
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp dword [0x51b030], 0
je 0x48ce60
test al, 0x10
jne 0x48ce6d
cmp dword [0x51b034], 0
je 0x48ce78
test al, 0x20
je 0x48ce78
test al, 8
je 0x48ce78
mov eax, esi
call fcn.00401610
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
test bl, bl
je 0x48ce78
cmp byte [esp + 0x13], 0
jne 0x48d0f0
cmp dword [esp + 0x6c], 3
je 0x48ceb8
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x6c]
mov eax, esi
call fcn.0048d8a0
mov edi, dword [esp + 0x20]
mov esi, eax
mov eax, esi
cdq
idiv dword [esp + 0x18]
cmp byte [esp + 0x27], 0
je 0x48ced4
mov ecx, dword [ebp + 0xc]
lea esi, [edx + ecx]
mov edx, dword [ebp + 0x10]
lea ebx, [eax + edx]
jmp 0x48ceec
sub edx, dword [esp + 0xd0]
sub eax, dword [esp + 0xd4]
add edx, dword [ebp + 0xc]
add eax, dword [ebp + 0x10]
mov esi, edx
mov ebx, eax
mov edx, dword [esp + 0xb8]
test edx, edx
je 0x48d051
mov eax, dword [esp + 0x6c]
cmp eax, 1
je 0x48cff8
cmp eax, 7
je 0x48cff8
cmp eax, 2
je 0x48d001
cmp eax, 8
je 0x48d001
test eax, eax
je 0x48cf2c
cmp eax, 6
jne 0x48cf35
mov eax, 1
sub eax, edi
add esi, eax
mov ecx, dword [esp + 0x30]
add dword [esp + 0x78], esi
add dword [esp + 0x38], ebx
cmp edx, 1
jne 0x48d013
dec dword [0x5164e0]
jne 0x48cf57
call fcn.00413d80
mov ecx, dword [0x519dfc]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x519dfc], ecx
mov ecx, eax
shr ecx, 0xb
xor eax, ecx
mov edx, eax
and edx, 0xff3a58ad
shl edx, 7
xor eax, edx
mov ecx, eax
and ecx, 0xffffdf8c
shl ecx, 0xf
xor eax, ecx
mov ecx, eax
shr ecx, 0x12
xor ecx, eax
mov eax, edi
cdq
push edx
push eax
push 0
push ecx
call fcn.004d94d0
add esi, eax
dec dword [0x5164e0]
jne 0x48cfac
call fcn.00413d80
mov ecx, dword [0x519dfc]
mov eax, dword [ecx]
mov edx, eax
add ecx, 4
shr edx, 0xb
xor eax, edx
mov dword [0x519dfc], ecx
mov ecx, eax
and ecx, 0xff3a58ad
shl ecx, 7
xor eax, ecx
mov edx, eax
and edx, 0xffffdf8c
shl edx, 0xf
xor eax, edx
mov ecx, eax
shr ecx, 0x12
xor ecx, eax
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
push 0
push ecx
call fcn.004d94d0
add ebx, eax
jmp 0x48d059
mov ecx, 1
sub ecx, edi
add esi, ecx
mov ecx, dword [esp + 0x30]
mov eax, 1
sub eax, ecx
add ebx, eax
jmp 0x48cf39
cmp edx, 2
jne 0x48d02c
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add esi, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add ebx, eax
jmp 0x48d059
cmp edx, 4
jne 0x48d037
lea ebx, [ebx + ecx - 1]
jmp 0x48d059
cmp edx, 5
jne 0x48d042
lea esi, [esi + edi - 1]
jmp 0x48d059
cmp edx, 6
jne 0x48d059
lea esi, [esi + edi - 1]
lea ebx, [ebx + ecx - 1]
jmp 0x48d059
add dword [esp + 0x78], esi
add dword [esp + 0x38], ebx
cmp dword [esp + 0xbc], 0
je 0x48d0b5
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xa4]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x4c]
push ecx
push edx
push eax
mov eax, dword [esp + 0x98]
call fcn.0048daa0
add esp, 0x20
test eax, eax
je 0x48d0aa
mov ecx, dword [esp + 0xbc]
mov edi, eax
call fcn.004af2e0
test eax, eax
jne 0x48d0b5
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esp + 0xcc]
test ecx, ecx
je 0x48d0ce
mov eax, esi
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.00401590
mov ecx, dword [esp + 0xc8]
test ecx, ecx
je 0x48d83e
mov eax, ebx
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.00401590
jmp 0x48d83e
push 0x20
call fcn.004cb48c
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x48d128
mov dword [eax + 4], 1
mov dword [eax], vtable.Object.0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ebx
mov dword [esp + 0x94], eax
jmp 0x48d12f
mov dword [esp + 0x94], ebx
mov dword [esp + 0x50], ebx
cmp dword [esp + 0x2c], ebx
jle 0x48d486
cmp dword [esp + 0x6c], 3
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + ebx*4]
je 0x48d15f
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x6c]
call fcn.0048d8a0
cdq
idiv dword [esp + 0x18]
cmp byte [esp + 0x27], 0
je 0x48d173
mov ecx, dword [ebp + 0xc]
lea edi, [edx + ecx]
jmp 0x48d186
sub edx, dword [esp + 0xd0]
add edx, dword [ebp + 0xc]
sub eax, dword [esp + 0xd4]
mov edi, edx
add eax, dword [ebp + 0x10]
cmp dword [esp + 0xb8], 0
mov dword [esp + 0x28], eax
je 0x48d30c
mov eax, dword [esp + 0x6c]
cmp eax, 1
je 0x48d1e0
cmp eax, 7
je 0x48d1e0
cmp eax, 2
je 0x48d1cb
cmp eax, 8
je 0x48d1cb
test eax, eax
je 0x48d1bc
cmp eax, 6
jne 0x48d1fe
mov esi, dword [esp + 0x20]
mov eax, 1
sub eax, esi
add edi, eax
jmp 0x48d202
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
mov ecx, 1
sub ecx, ebx
add dword [esp + 0x28], ecx
jmp 0x48d206
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
mov edx, 1
sub edx, esi
mov eax, 1
sub eax, ebx
add edi, edx
add dword [esp + 0x28], eax
jmp 0x48d206
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0xb8]
cmp eax, 1
jne 0x48d2c4
dec dword [0x5164e0]
jne 0x48d223
call fcn.00413d80
mov ecx, dword [0x519dfc]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x519dfc], ecx
mov ecx, eax
shr ecx, 0xb
xor eax, ecx
mov edx, eax
and edx, 0xff3a58ad
shl edx, 7
xor eax, edx
mov ecx, eax
and ecx, 0xffffdf8c
shl ecx, 0xf
xor eax, ecx
mov ecx, eax
shr ecx, 0x12
xor ecx, eax
mov eax, esi
cdq
push edx
push eax
push 0
push ecx
call fcn.004d94d0
add edi, eax
dec dword [0x5164e0]
jne 0x48d278
call fcn.00413d80
mov ecx, dword [0x519dfc]
mov eax, dword [ecx]
mov edx, eax
add ecx, 4
shr edx, 0xb
xor eax, edx
mov dword [0x519dfc], ecx
mov ecx, eax
and ecx, 0xff3a58ad
shl ecx, 7
xor eax, ecx
mov edx, eax
and edx, 0xffffdf8c
shl edx, 0xf
xor eax, edx
mov ecx, eax
shr ecx, 0x12
xor ecx, eax
mov eax, ebx
cdq
push edx
push eax
push 0
push ecx
call fcn.004d94d0
add dword [esp + 0x28], eax
jmp 0x48d30c
cmp eax, 2
jne 0x48d2df
mov eax, esi
cdq
sub eax, edx
sar eax, 1
add edi, eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x28], eax
jmp 0x48d30c
cmp eax, 4
jne 0x48d2f2
mov edx, dword [esp + 0x28]
lea eax, [edx + ebx - 1]
mov dword [esp + 0x28], eax
jmp 0x48d30c
cmp eax, 5
je 0x48d308
cmp eax, 6
jne 0x48d30c
mov ecx, dword [esp + 0x28]
lea edx, [ecx + ebx - 1]
mov dword [esp + 0x28], edx
lea edi, [edi + esi - 1]
cmp dword [esp + 0xbc], 0
je 0x48d439
xor edx, edx
xor eax, eax
lea ecx, [esp + 0x160]
mov esi, 1
lea ebx, [ebx]
mov dword [esp + eax*4 + 0x110], ecx
add eax, esi
add ecx, 0x10
cmp eax, 0x12
jl 0x48d330
mov ecx, dword [esp + 0x28]
cmp ecx, 0xffffffff
jle 0x48d3a5
mov eax, edi
cdq
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], edx
mov eax, ecx
cdq
xor ebx, ebx
mov dword [esp + 0x194], edx
mov dword [esp + 0x168], ebx
mov dword [esp + 0x160], str.xywh
mov dword [esp + 0x178], esi
mov dword [esp + 0x188], ebx
mov dword [esp + 0x180], 0x50d2a0
mov dword [esp + 0x198], esi
mov dword [esp + 0x190], eax
mov edx, 4
push edx
lea eax, [esp + 0x114]
push eax
call fcn.0049ed70
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x48d0aa
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0xf8]
mov dword [esp + 0xe0], ecx
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x100], 6
mov dword [esp + 0xf8], ebx
test ecx, ecx
je 0x48d404
mov edx, dword [edx + 0xc]
mov eax, ecx
add eax, eax
mov eax, dword [edx + eax*8 - 8]
mov edx, dword [esp + 0x94]
add eax, esi
jmp 0x48d406
mov eax, esi
push 1
lea esi, [esp + 0xe4]
push esi
push eax
push ecx
mov esi, edx
call fcn.004a0280
test al, al
jne 0x48d431
push 0x4f5ac4
push str.Out_of_memory.
mov ecx, 0x51c0f8
call fcn.00477180
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x48d475
mov ecx, dword [esp + 0xcc]
test ecx, ecx
je 0x48d45a
mov eax, edi
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.00401590
mov ecx, dword [esp + 0xc8]
test ecx, ecx
je 0x48d475
mov eax, dword [esp + 0x28]
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.00401590
inc ebx
mov dword [esp + 0x50], ebx
cmp ebx, dword [esp + 0x2c]
jl 0x48d13d
xor ebx, ebx
cmp dword [esp + 0xbc], ebx
je 0x48d812
lea edx, [esp + 0x160]
mov dword [esp + 0x110], edx
lea eax, [esp + 0x170]
mov dword [esp + 0x114], eax
lea ecx, [esp + 0x180]
mov dword [esp + 0x118], ecx
lea edx, [esp + 0x190]
mov dword [esp + 0x11c], edx
lea eax, [esp + 0x1a0]
mov dword [esp + 0x120], eax
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x124], ecx
lea edx, [esp + 0x1c0]
mov dword [esp + 0x128], edx
lea eax, [esp + 0x1d0]
mov dword [esp + 0x12c], eax
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x130], ecx
lea edx, [esp + 0x1f0]
mov dword [esp + 0x134], edx
lea eax, [esp + 0x200]
mov dword [esp + 0x138], eax
lea ecx, [esp + 0x210]
lea edx, [esp + 0x220]
lea eax, [esp + 0x230]
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], edx
mov dword [esp + 0x144], eax
lea ecx, [esp + 0x240]
lea edx, [esp + 0x250]
lea eax, [esp + 0x260]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], edx
mov dword [esp + 0x150], eax
lea ecx, [esp + 0x270]
lea edx, [esp + 0x280]
lea eax, [esp + 0x290]
xor edi, edi
push str._._:5
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], edx
mov dword [esp + 0x160], eax
mov dword [esp + 0x16c], edi
call fcn.004a4b10
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x7c]
cdq
add esp, 4
mov esi, 1
push str._._:4
mov dword [esp + 0x17c], esi
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], edx
mov dword [esp + 0x18c], edi
call fcn.004a4b10
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x3c]
cdq
add esp, 4
push 0x50d5d0
mov dword [esp + 0x19c], esi
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], edx
mov dword [esp + 0x1ac], edi
call fcn.004a4b10
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x38]
cdq
add esp, 4
push 0x50d5f0
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1cc], edi
call fcn.004a4b10
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0xa8]
cdq
add esp, 4
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1d4], edx
cdq
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1f4], edx
cdq
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x214], edx
cdq
mov dword [esp + 0x1e8], edi
mov dword [esp + 0x208], edi
mov dword [esp + 0x228], edi
lea edi, [esp + 0x110]
mov dword [esp + 0x1e0], 0x50d2a4
mov dword [esp + 0x1f8], esi
mov dword [esp + 0x200], 0x50d2a8
mov dword [esp + 0x218], esi
mov dword [esp + 0x220], str.count
mov dword [esp + 0x238], esi
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], edx
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], 7
mov ebx, dword [edi]
push ebx
call fcn.0044e550
add esp, 4
cmp eax, 1
jne 0x48d755
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0xd0]
push ecx
push edx
lea ecx, [eax + 1]
mov edx, edi
call fcn.004a0410
jmp 0x48d7d9
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x94]
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0xe4]
push edx
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0x6ec]
push ecx
push ebx
mov ecx, esi
call fcn.004a12d0
test eax, eax
jne 0x48d7ac
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xcc]
mov ebx, dword [esp + 0x50]
push edx
push eax
call fcn.004a1390
test eax, eax
je 0x48d7c5
mov ebx, dword [esp + 0xac]
mov edi, eax
call fcn.004a0e70
mov edi, dword [esp + 0xc4]
test al, al
jne 0x48d7dd
push 0x4f5ac4
push str.Out_of_memory.
mov ecx, 0x51c0f8
call fcn.00477180
test eax, eax
je 0x48d7fb
mov eax, 1
mov dword [esp + 0xd8], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0
add edi, 8
dec dword [esp + 0xc8]
mov dword [esp + 0xc4], edi
jne 0x48d726
mov edi, dword [esp + 0x94]
test edi, edi
je 0x48d831
mov ecx, dword [esp + 0xbc]
call fcn.004af2e0
test eax, eax
je 0x48d0aa
mov ecx, dword [esp + 0x54]
push ecx
call fcn.004ca991
add esp, 4
push 1
push 0
push 0xffffffffffffffff
push 0x4e6a28
mov edx, dword [0x51b6d0]
push edx
call fcn.004aefb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18