Function at 0x4d8800
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeac
push ebx
push esi
push edi
mov byte [ebp - 0x9b], cl
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x44], eax
push 1
mov eax, dword [ebp - 0x48]
call fcn.0042725c
push eax
call sub.gdi32.dll_SetMapMode
xor eax, eax
push ebp
push 0x4d88a2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x44]
call fcn.004541d8
push eax
call sub.user32.dll_GetDC
mov ebx, eax
push 0x58
mov eax, dword [ebp - 0x48]
call fcn.0042725c
push eax
call sub.gdi32.dll_GetDeviceCaps
mov dword [ebp - 0x114], eax
fild dword [ebp - 0x114]
fstp xword [ebp - 0x120]
wait
push 0x58
push ebx
call sub.gdi32.dll_GetDeviceCaps
mov dword [ebp - 0x124], eax
fild dword [ebp - 0x124]
fld xword [ebp - 0x120]
fdivrp st(1)
fstp qword [ebp - 0x50]
wait
push ebx
mov eax, dword [ebp - 0x44]
call fcn.004541d8
push eax
call sub.user32.dll_ReleaseDC
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4d88b8
push 2
mov eax, dword [ebp - 0x48]
call fcn.0042725c
push eax
call sub.gdi32.dll_SetMapMode
mov eax, dword [ebp - 0x44]
xor edx, edx
mov dword [eax + 0xa40], edx
mov dword [eax + 0xa44], 0x3ff00000
mov dl, 1
mov eax, dword [0x424498]
call fcn.00425c0c
mov dword [ebp - 0x58], eax
mov dl, 1
mov eax, dword [0x424498]
call fcn.00425c0c
mov dword [ebp - 0x54], eax
mov dl, 1
mov eax, dword [0x424614]
call fcn.00426138
mov dword [ebp - 0xb4], eax
mov dl, 1
mov eax, dword [0x424714]
call fcn.00426424
mov dword [ebp - 0xa4], eax
mov dl, 1
mov eax, dword [0x424714]
call fcn.00426424
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x10]
xor edx, edx
call fcn.004262cc
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov dl, byte [eax + 0x21]
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x10]
call fcn.004263c8
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x20], 2
jne 0x4d8973
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x10]
mov edx, 0xa
call fcn.004263f8
jmp 0x4d8983
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x10]
mov edx, 2
call fcn.004263f8
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x48]
mov ebx, dword [eax + 0xc]
mov eax, ebx
call fcn.00426064
mov edx, eax
mov eax, dword [ebp - 0x44]
call fcn.004d5260
mov edx, eax
mov eax, ebx
call fcn.00425fc8
mov edx, 0x4d97f8
mov eax, dword [ebp - 0x48]
call fcn.004270b4
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x48]
call fcn.00427158
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
call fcn.00426064
mov edx, eax
mov eax, dword [ebp - 0x44]
call fcn.004d5260
mov edx, eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
call fcn.00425fc8
mov edx, 0x4d97f8
mov eax, dword [ebp - 0x48]
call fcn.004270b4
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 0x48]
call fcn.00427158
mov dword [ebp - 0x78], 0xffffffff
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
call fcn.00426064
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
call fcn.00426064
mov edx, eax
mov eax, dword [ebp - 0x44]
call fcn.004d5260
mov edx, eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
call fcn.00425fc8
mov edx, 0x4d97f8
mov eax, dword [ebp - 0x48]
call fcn.004270b4
movzx eax, ax
shr eax, 3
mov word [ebp - 0x9a], ax
mov edx, 0x4d9804
mov eax, dword [ebp - 0x48]
call fcn.00427098
mov word [ebp - 0xa8], ax
mov al, byte [ebp - 0x9b]
sub al, 1
jb 0x4d8b31
je 0x4d8ab0
dec al
je 0x4d8afd
dec al
je 0x4d8b31
jmp 0x4d8b93
lea edx, [ebp - 0x134]
mov eax, dword [ebp - 0x48]
call fcn.00427238
mov ebx, dword [ebp - 0x12c]
lea edx, [ebp - 0x144]
mov eax, dword [ebp - 0x48]
call fcn.00427238
sub ebx, dword [ebp - 0x144]
mov dword [ebp - 0xcc], ebx
lea edx, [ebp - 0x134]
mov eax, dword [ebp - 0x48]
call fcn.00427238
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0xd0], eax
jmp 0x4d8b93
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0xa31]
mov edx, dword [ebp - 0x44]
sub eax, dword [edx + 0xa29]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0xa35]
neg eax
mov edx, dword [ebp - 0x44]
sub eax, dword [edx + 0xa2d]
mov dword [ebp - 0xd0], eax
jmp 0x4d8b93
push 1
mov eax, dword [ebp - 0x44]
add eax, 0xa29
push eax
mov eax, dword [ebp - 0x48]
call fcn.0042725c
push eax
call sub.gdi32.dll_DPtoLP
push 1
mov eax, dword [ebp - 0x44]
add eax, 0xa31
push eax
mov eax, dword [ebp - 0x48]
call fcn.0042725c
push eax
call sub.gdi32.dll_DPtoLP
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0xa31]
mov edx, dword [ebp - 0x44]
sub eax, dword [edx + 0xa29]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0xa35]
mov edx, dword [ebp - 0x44]
sub eax, dword [edx + 0xa2d]
mov dword [ebp - 0xd0], eax
push 0x58
mov eax, dword [ebp - 0x48]
call fcn.0042725c
push eax
call sub.gdi32.dll_GetDeviceCaps
mov dword [ebp - 0x114], eax
fild dword [ebp - 0x114]
fstp xword [ebp - 0x120]
wait
push 0x58
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x208]
call fcn.0042725c
push eax
call sub.gdi32.dll_GetDeviceCaps
mov dword [ebp - 0x124], eax
fild dword [ebp - 0x124]
fld xword [ebp - 0x120]
fdivrp st(1)
fstp xword [ebp - 0x150]
wait
push 0x58
mov eax, dword [ebp - 0x48]
call fcn.0042725c
push eax
call sub.gdi32.dll_GetDeviceCaps
mov dword [ebp - 0x154], eax
fild dword [ebp - 0x154]
fdivr dword [0x4d9808]
fld xword [ebp - 0x150]
fmulp st(1)
fstp qword [ebp - 0x70]
wait
mov eax, dword [ebp - 0xd0]
push eax
lea eax, [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0xcc]
xor edx, edx
xor eax, eax
call fcn.00418918
mov eax, dword [ebp - 0x44]
lea esi, [ebp - 0x134]
lea edi, [eax + 0xa4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x64], 0
je 0x4d8c70
xor eax, eax
mov dword [ebp - 0xf8], eax
jmp 0x4d8c85
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x40]
add eax, 0x14
mov dword [ebp - 0xf8], eax
push ebp
call fcn.004d5a30
pop ecx
xor eax, eax
mov edx, dword [ebp - 0x44]
mov esi, dword [edx + 0x9a4]
mov edx, dword [ebp - 0x44]
mov ebx, dword [edx + 0x9ac]
sub ebx, esi
jl 0x4d8cb9
inc ebx
mov edx, dword [ebp - 0x44]
add eax, dword [edx + esi*4 + 0xa90]
add eax, dword [ebp - 0xf8]
inc esi
dec ebx
jne 0x4d8ca5
xor edx, edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x94], 0x3ff00000
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x580]
cmp byte [edx + 0x65], 0
je 0x4d8e93
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x9ac]
mov ecx, dword [ebp - 0x44]
sub edx, dword [ecx + 0x9a4]
inc edx
imul edx, dword [ebp - 0xf8]
mov dword [ebp - 0x74], edx
mov edx, eax
sub edx, dword [ebp - 0x74]
test edx, edx
je 0x4d8d49
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x580]
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [edx + 0x3c]
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x580]
sub ecx, dword [edx + 0x38]
sub ecx, dword [ebp - 0x74]
mov dword [ebp - 0x114], ecx
fild dword [ebp - 0x114]
sub eax, dword [ebp - 0x74]
mov dword [ebp - 0x124], eax
fild dword [ebp - 0x124]
fdivp st(1)
fstp qword [ebp - 0x98]
wait
fld qword [ebp - 0x98]
fcomp dword [0x4d980c]
fnstsw ax
sahf
jbe 0x4d8d7b
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x65], 2
jne 0x4d8d7b
xor eax, eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], 0x3ff00000
fld qword [ebp - 0x98]
fcomp dword [0x4d980c]
fnstsw ax
sahf
jae 0x4d8dad
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x65], 1
jne 0x4d8dad
xor eax, eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], 0x3ff00000
fld qword [ebp - 0x98]
fcomp dword [0x4d980c]
fnstsw ax
sahf
je 0x4d8e1b
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x65], 4
jne 0x4d8e1b
mov byte [ebp - 0x10e], 1
mov eax, dword [ebp - 0x44]
cmp word [eax + 0x482], 0
je 0x4d8e00
lea eax, [ebp - 0x10e]
push eax
lea ecx, [ebp - 0x98]
mov ebx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebx + 0x484]
call dword [ebx + 0x480]
cmp byte [ebp - 0x10e], 0
jne 0x4d8e1b
xor eax, eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], 0x3ff00000
fld qword [ebp - 0x98]
fcomp dword [0x4d980c]
fnstsw ax
sahf
je 0x4d8e93
mov eax, dword [ebp - 0x44]
mov esi, dword [eax + 0x9a4]
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax + 0x9ac]
sub ebx, esi
jl 0x4d8e66
inc ebx
mov eax, dword [ebp - 0x44]
fild dword [eax + esi*4 + 0xa90]
fmul qword [ebp - 0x98]
call fcn.00402c94
mov edx, dword [ebp - 0x44]
mov dword [edx + esi*4 + 0xa90], eax
inc esi
dec ebx
jne 0x4d8e43
xor eax, eax
mov edx, dword [ebp - 0x44]
mov esi, dword [edx + 0x9a4]
mov edx, dword [ebp - 0x44]
mov ebx, dword [edx + 0x9ac]
sub ebx, esi
jl 0x4d8e93
inc ebx
mov edx, dword [ebp - 0x44]
add eax, dword [edx + esi*4 + 0xa90]
add eax, dword [ebp - 0xf8]
inc esi
dec ebx
jne 0x4d8e7f
mov eax, dword [ebp - 0x44]
cmp word [eax + 0x472], 0
je 0x4d8f07
mov eax, dword [ebp - 0x44]
mov esi, dword [eax + 0x9a4]
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax + 0x9ac]
sub ebx, esi
jl 0x4d8eda
inc ebx
mov eax, dword [ebp - 0x44]
lea eax, [eax + esi*4 + 0xa90]
push eax
mov edi, dword [ebp - 0x44]
mov ecx, esi
mov edx, dword [ebp - 0x44]
mov eax, dword [edi + 0x474]
call dword [edi + 0x470]
inc esi
dec ebx
jne 0x4d8eb7
xor eax, eax
mov edx, dword [ebp - 0x44]
mov esi, dword [edx + 0x9a4]
mov edx, dword [ebp - 0x44]
mov ebx, dword [edx + 0x9ac]
sub ebx, esi
jl 0x4d8f07
inc ebx
mov edx, dword [ebp - 0x44]
add eax, dword [edx + esi*4 + 0xa90]
add eax, dword [ebp - 0xf8]
inc esi
dec ebx
jne 0x4d8ef3
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9a4]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9a4]
mov dword [ebp - 0x104], eax
xor eax, eax
mov dword [ebp - 0xa0], eax
xor eax, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xf0], 0xffffffff
mov byte [ebp - 0xb5], 0
jmp 0x4d9792
xor eax, eax
mov dword [ebp - 0x10c], eax
mov esi, dword [ebp - 0x104]
xor eax, eax
mov dword [ebp - 0xbc], eax
inc dword [ebp - 0xc0]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9a4]
cmp eax, dword [ebp - 0x104]
jge 0x4d8f93
mov eax, dword [ebp - 0x44]
call fcn.004c8420
test eax, eax
jle 0x4d8f93
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x2e], 0
jne 0x4d8f97
xor eax, eax
jmp 0x4d8f99
mov al, 1
mov byte [ebp - 0xd9], al
cmp byte [ebp - 0xd9], 0
je 0x4d8fda
mov eax, dword [ebp - 0x44]
call fcn.004c8420
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4d8fda
inc ebx
xor edi, edi
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + edi*4 + 0xa90]
add eax, dword [ebp - 0x10c]
add eax, dword [ebp - 0xf8]
mov dword [ebp - 0x10c], eax
inc edi
dec ebx
jne 0x4d8fba
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x108], eax
jmp 0x4d9018
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x104]
mov edx, dword [edx + ecx*4 + 0xa90]
add edx, dword [ebp - 0x108]
add edx, dword [ebp - 0xf8]
mov dword [ebp - 0x108], edx
cmp eax, dword [ebp - 0x108]
jl 0x4d9018
inc dword [ebp - 0x104]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
push dword [eax + 0x3c]
mov eax, dword [ebp - 0xcc]
pop edx
sub eax, edx
cmp eax, dword [ebp - 0x108]
jl 0x4d9046
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x9ac]
cmp edx, dword [ebp - 0x104]
jge 0x4d8fe8
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov edx, dword [ebp - 0xcc]
sub edx, dword [eax + 0x3c]
cmp edx, dword [ebp - 0x108]
jge 0x4d9088
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x108]
sub ecx, dword [eax + edx*4 + 0xa90]
sub ecx, dword [ebp - 0xf8]
mov dword [ebp - 0x108], ecx
dec dword [ebp - 0x104]
cmp esi, dword [ebp - 0x104]
jl 0x4d9097
inc esi
mov dword [ebp - 0x104], esi
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9ac]
cmp eax, dword [ebp - 0x104]
jge 0x4d90ae
mov dword [ebp - 0x104], eax
cmp byte [ebp - 0xb5], 0
jne 0x4d90cc
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9ac]
cmp eax, dword [ebp - 0x104]
jg 0x4d90cc
xor eax, eax
jmp 0x4d90ce
mov al, 1
mov byte [ebp - 0xb5], al
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x108]
mov dword [eax + 0xa48], edx
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x2c], 0
je 0x4d9111
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x100]
xor ecx, ecx
mov dword [eax + edx*4 + 0xe94], ecx
mov eax, dword [ebp - 0x44]
xor edx, edx
mov dword [eax + 0xe94], edx
jmp 0x4d9136
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xc4]
mov dword [eax + edx*4 + 0xe94], ecx
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0xc4]
mov dword [eax + 0xe94], edx
mov esi, dword [ebp - 0x100]
inc esi
mov ebx, dword [ebp - 0x104]
sub ebx, esi
jl 0x4d9170
inc ebx
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + esi*4 + 0xe90]
mov edx, dword [ebp - 0x44]
add eax, dword [edx + esi*4 + 0xa8c]
add eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x44]
mov dword [edx + esi*4 + 0xe94], eax
inc esi
dec ebx
jne 0x4d9148
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x100]
mov dword [eax + 0xa5c], edx
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x104]
mov dword [eax + 0xa60], edx
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x104]
mov eax, dword [eax + edx*4 + 0xe94]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x104]
add eax, dword [edx + ecx*4 + 0xa90]
add eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x104]
mov dword [edx + ecx*4 + 0xe98], eax
cmp byte [ebp - 0xd9], 0
je 0x4d9209
mov eax, dword [ebp - 0x44]
call fcn.004c8420
mov ebx, eax
dec ebx
test ebx, ebx
jle 0x4d9209
mov edi, 1
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + edi*4 + 0xe90]
mov edx, dword [ebp - 0x44]
add eax, dword [edx + edi*4 + 0xa8c]
add eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x44]
mov dword [edx + edi*4 + 0xe94], eax
inc edi
dec ebx
jne 0x4d91e1
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x2c], 0
je 0x4d928e
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0xcc]
jge 0x4d928e
mov eax, dword [ebp - 0xcc]
sub eax, dword [ebp - 0x108]
shr eax, 1
mov dword [ebp - 0x108], eax
mov esi, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x104]
inc ebx
sub ebx, esi
jl 0x4d9260
inc ebx
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x108]
add dword [eax + esi*4 + 0xe94], edx
inc esi
dec ebx
jne 0x4d924c
cmp byte [ebp - 0xd9], 0
je 0x4d928e
mov eax, dword [ebp - 0x44]
call fcn.004c8420
mov ebx, eax
test ebx, ebx
jl 0x4d928e
inc ebx
xor edi, edi
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x108]
add dword [eax + edi*4 + 0xe94], edx
inc edi
dec ebx
jne 0x4d927a
mov esi, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x104]
inc ebx
sub ebx, esi
jl 0x4d92b4
inc ebx
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x10c]
add dword [eax + esi*4 + 0xe94], edx
inc esi
dec ebx
jne 0x4d92a0
xor esi, esi
mov eax, dword [ebp - 0xe0]
neg eax
mov dword [ebp - 0xec], eax
xor eax, eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov dl, byte [eax + 4]
dec edx
sub dl, 3
jb 0x4d931c
mov dl, byte [eax + 5]
dec edx
sub dl, 3
jb 0x4d931c
mov dl, byte [eax + 6]
dec edx
sub dl, 3
jb 0x4d931c
mov al, byte [eax + 0x10]
dec eax
sub al, 3
jae 0x4d937b
movzx eax, word [ebp - 0x9a]
add eax, dword [ebp - 0xf4]
add eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4d9387
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov al, byte [eax + 0x10]
dec eax
sub al, 3
jae 0x4d9387
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
imul dword [ebp - 0xf4]
add dword [ebp - 0xe0], eax
jmp 0x4d9387
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov dl, byte [eax + 4]
add dl, 0xfc
sub dl, 3
jb 0x4d93ba
mov dl, byte [eax + 5]
add dl, 0xfc
sub dl, 3
jb 0x4d93ba
mov dl, byte [eax + 6]
add dl, 0xfc
sub dl, 3
jb 0x4d93ba
mov al, byte [eax + 0x10]
add al, 0xfc
sub al, 3
jae 0x4d941c
movzx eax, word [ebp - 0x9a]
add eax, dword [ebp - 0xd4]
add eax, eax
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4d9435
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov al, byte [eax + 0x10]
add al, 0xfc
sub al, 3
jae 0x4d9435
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
imul dword [ebp - 0xd4]
add dword [ebp - 0xfc], eax
jmp 0x4d9435
movzx eax, word [ebp - 0x9a]
add eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9a8]
mov dword [ebp - 0xe8], eax
mov al, byte [ebp - 0x9b]
sub al, 2
jae 0x4d9715
mov eax, dword [ebp - 0x44]
cmp word [eax + 0x45a], 0
je 0x4d9715
push 1
mov eax, dword [ebp - 0xcc]
push eax
mov eax, dword [ebp - 0xd0]
push eax
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebx + 0x45c]
call dword [ebx + 0x458]
jmp 0x4d9715
test esi, esi
jne 0x4d94b8
mov eax, dword [ebp - 0xe0]
neg eax
mov dword [ebp - 0xec], eax
push ebp
call fcn.004d7434
pop ecx
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
mov eax, dword [eax + 0x48]
sub dword [ebp - 0xec], eax
test esi, esi
jne 0x4d9563
cmp dword [ebp - 0xe8], 0
jle 0x4d9563
cmp dword [ebp - 0xa0], 0
jg 0x4d94e9
mov eax, dword [ebp - 0x44]
call fcn.004c83fc
mov edx, dword [ebp - 0x44]
cmp eax, dword [edx + 0x9a8]
jg 0x4d9563
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x580]
cmp byte [eax + 0x2d], 0
je 0x4d9563
mov eax, dword [ebp - 0x44]
call fcn.004c83fc
test eax, eax
jle 0x4d9563
mov eax, dword [ebp - 0x44]
call fcn.004c83fc
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4d9562
inc ebx
xor edi, edi
cmp byte [ebp - 0xd9], 0
je 0x4d953c
push ebp
push edi
push 0
mov eax, dword [ebp - 0x44]
call fcn.004c8420
mov ecx, eax
dec ecx
xor edx, edx
mov eax, dword [ebp - 0xec]
call fcn.004d5c74
pop ecx
push ebp
push edi
push 0
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp - 0xec]
call fcn.004d5c74
pop ecx
sub dword [ebp - 0xec], eax
inc edi
dec ebx
jne 0x4d9516
inc esi
cmp byte [ebp - 0xd9], 0
je 0x4d958f
push ebp
mov eax, dword [ebp - 0xe8]
push eax
push 0
mov eax, dword [ebp - 0x44]
call fcn.004c8420
mov ecx, eax
dec ecx
xor edx, edx
mov eax, dword [ebp - 0xec]
call fcn.004d5c74
pop ecx
push ebp
mov eax, dword [ebp - 0xe8]
push eax
push 0
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp - 0xec]
call fcn.004d5c74
pop ecx
sub dword [ebp - 0xec], eax
inc dword [ebp - 0xe8]
inc esi
mov byte [ebp - 0x10d], 0
mov eax, dword [ebp - 0x44]
cmp word [eax + 0x462], 0
je 0x4d95f1
lea eax, [ebp - 0x10d]
push eax
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebx + 0x464]
call dword [ebx + 0x460]
push ebp
mov eax, esi
call fcn.004d5b4c
pop ecx
mov edx, dword [ebp - 0xec]
sub edx, eax
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0xfc]
cmp edx, eax
jl 0x4d962d
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9b0]
inc eax
cmp eax, dword [ebp - 0xe8]
jle 0x4d962d
cmp byte [ebp - 0x10d], 0
je 0x4d9672
mov eax, dword [ebp - 0x44]
cmp word [eax + 0x46a], 0
je 0x4d9672
mov eax, dword [ebp - 0xe8]
push eax
mov eax, dword [ebp - 0xec]
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0xcc]
push eax
mov eax, dword [ebp - 0xd0]
push eax
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebx + 0x46c]
call dword [ebx + 0x468]
push ebp
mov eax, esi
call fcn.004d5b4c
pop ecx
mov edx, dword [ebp - 0xec]
sub edx, eax
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0xfc]
cmp edx, eax
jge 0x4d96a5
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9b0]
inc eax
cmp eax, dword [ebp - 0xe8]
jg 0x4d96ae
cmp byte [ebp - 0x10d], 0
je 0x4d9715
push ebp
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x100]
call fcn.004d8480
pop ecx
xor esi, esi
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xf0], eax
push ebp
call fcn.004d8740
pop ecx
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0xa64]
cmp eax, dword [ebp - 0xa0]
jge 0x4d9709
mov eax, dword [ebp - 0x44]
cmp byte [eax + 0x584], 0
je 0x4d9709
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9b0]
inc eax
mov dword [ebp - 0xe8], eax
inc dword [ebp - 0xa0]
inc dword [ebp - 0xbc]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9b0]
inc eax
cmp eax, dword [ebp - 0xe8]
jg 0x4d948d
cmp dword [ebp - 0xf0], 0xffffffff
je 0x4d9742
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0xf0]
je 0x4d975b
push ebp
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x100]
call fcn.004d8480
pop ecx
mov eax, dword [ebp - 0x104]
inc eax
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9ac]
cmp eax, dword [ebp - 0x104]
jl 0x4d978c
push ebp
call fcn.004d8740
pop ecx
inc dword [ebp - 0xa0]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x9ac]
cmp eax, dword [ebp - 0x104]
jge 0x4d8f4b
mov eax, dword [ebp - 0x58]
call fcn.004040a0
mov eax, dword [ebp - 0x54]
call fcn.004040a0
mov eax, dword [ebp - 0xb4]
call fcn.004040a0
mov eax, dword [ebp - 0xa4]
call fcn.004040a0
mov eax, dword [ebp - 0x60]
call fcn.004040a0
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4