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

Disassembly:
sub esp, 0x18c
mov edx, ecx
push ebx
push ebp
push esi
mov eax, dword [edx + 0x124]
mov ebp, dword [edx + 0x3c]
mov esi, dword [edx + 0x44]
mov ebx, dword [edx + 0xb0]
mov ecx, dword [eax + 0x54]
push edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x4c], ebp
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xb8], eax
lea eax, [esi + ebp]
mov dword [esp + 0x84], ebx
test eax, eax
js 0x4dc830
mov edi, dword [edx + 0x48]
mov edx, dword [edx + 0x40]
mov dword [esp + 0x30], edi
mov dword [esp + 0x6c], edx
lea eax, [edi + edx]
test eax, eax
js 0x4dc830
cmp ebp, dword [esp + 0x48]
jg 0x4dc830
mov eax, dword [ecx + 4]
mov dword [esp + 0xa0], eax
cmp edx, eax
jg 0x4dc830
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebp, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x9c], eax
xor eax, eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov ecx, dword [ebp + 0x98]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov eax, dword [ebp + 0xa0]
add eax, ecx
mov dword [esp + 0xe0], 0x28
sets dl
dec edx
and edx, eax
mov eax, dword [ebp + 0xa4]
mov dword [esp + 0x18], edx
xor edx, edx
add eax, ecx
sets dl
dec edx
and edx, eax
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0xac], edx
xor edx, edx
add eax, ecx
sets dl
dec edx
and edx, eax
mov eax, dword [ebp + 0xac]
add eax, ecx
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, eax
mov eax, dword [ebp + 0xd8]
mov ebp, dword [esp + 0x18]
cmp eax, 1
jle 0x4d9b00
dec ebp
add ebp, eax
mov dword [esp + 0x18], ebp
sub esi, edx
mov dword [esp + 0x100], 0
xor edx, edx
mov dword [esp + 0x104], 0
mov eax, edi
mov dword [esp + 0xec], 0x200001
sub eax, ecx
mov dword [esp + 0xf0], 0
sub esi, ebp
mov dword [esp + 0xc0], 0
push 0
sets dl
xor ecx, ecx
dec edx
and edx, esi
sub eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xa0]
sets cl
mov dword [esp + 0xb8], edx
dec ecx
mov dword [esp + 0xe8], edx
and ecx, eax
mov eax, ecx
mov dword [esp + 0x2c], ecx
neg eax
mov dword [esp + 0xec], eax
mov eax, ecx
imul eax, edx
push 0
shl eax, 2
mov dword [esp + 0xfc], eax
lea eax, [esp + 0xc8]
push eax
push 0
lea eax, [esp + 0xf0]
push eax
push esi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
push 1
push esi
mov dword [esp + 0xd4], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
push 0xffffff
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
mov ebp, dword [sym.imp.USER32.dll_DrawTextW]
mov dword [esp + 0x54], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [esp + 0xc8], edi
mov dword [esp + 0x78], ebp
mov dword [esp + 0xa4], eax
lea ecx, [ecx]
mov edi, dword [esp + 0x20]
mov eax, 0x38e38e39
push str.Segoe_UI
push 0
push 5
push 0
push 0
push 0
push dword [edi + 0xc0]
imul ecx, ebx, 0xffffffa0
push dword [edi + 0xbc]
push dword [edi + 0xb8]
push dword [edi + 0xb4]
imul ecx
push 0
sar edx, 4
mov eax, edx
push 0
shr eax, 0x1f
push 0
add eax, edx
push eax
call dword [sym.imp.GDI32.dll_CreateFontW]
mov ebx, dword [esp + 0xc8]
push eax
push esi
mov dword [esp + 0xe4], eax
call ebx
push dword [esp + 0xcc]
mov dword [esp + 0xd8], eax
push esi
call ebx
mov dword [esp + 0xd8], eax
mov ecx, 3
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x94], eax
mov eax, dword [edi + 0xc4]
cdq
idiv ecx
mov ebx, dword [esp + 0x28]
mov esi, eax
mov dword [esp + 0x8c], 0
xor eax, eax
mov dword [esp + 0x90], 0
cmp dword [edi + 0xc8], 2
mov dword [esp + 0x98], ebx
setne al
mov dword [esp + 0x44], edx
dec eax
and eax, 0x8000
mov dword [esp + 0x70], eax
lea eax, [esp + 0x15c]
push eax
push dword [esp + 0xa0]
call dword [sym.imp.GDI32.dll_GetTextMetricsW]
push 0x400
lea eax, [esp + 0x90]
push eax
push 1
push 0x5c4160
push dword [esp + 0xac]
call ebp
mov eax, dword [edi + 0x104]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x94], 0
lea edi, [eax + 0x44]
mov ecx, dword [ebp + 0x108]
mov eax, dword [ebp + 0x90]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x98]
lea edx, [eax + ecx]
add eax, ecx
add eax, dword [ebp + 0x9c]
mov ebp, dword [ebp + 0x8c]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xbc], edx
mov dword [esp + 0x1c], ebp
lea eax, [ebp*2]
sub ebx, eax
mov dword [esp + 0x40], ebx
cmp edi, ebx
jle 0x4d9d65
mov edi, ebx
mov dword [esp + 0x98], edi
mov ecx, dword [esp + 0x90]
sub esi, 1
je 0x4d9d80
sub esi, 1
jne 0x4d9db1
mov eax, ebx
sub eax, edi
add ecx, eax
add edi, ecx
jmp 0x4d9da3
mov eax, ebx
sub eax, edi
cdq
sub eax, edx
sar eax, 1
add ecx, eax
add edi, ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], edi
test ecx, ecx
jns 0x4d9db1
xor ecx, ecx
mov edi, ebx
mov dword [esp + 0x98], edi
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0x20]
lea edx, [ecx + ebp]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x5c], edx
mov eax, dword [eax + 0xf4]
movzx esi, byte [eax]
cmp edx, esi
jge 0x4d9e0e
mov ecx, dword [eax + 8]
mov dword [esp + 0x2c], esi
test ecx, ecx
je 0x4d9e0e
mov eax, esi
mov ebx, esi
sub eax, edx
sub ebx, ebp
dec eax
dec ebx
imul eax, esi
xor edx, edx
lea eax, [ecx + eax*4]
test esi, esi
je 0x4d9e0e
lea ecx, [esi - 1]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx]
shr eax, 8
movzx eax, al
cmp eax, ebx
je 0x4d9e0a
inc edx
sub ecx, 4
cmp edx, esi
jl 0x4d9df4
jmp 0x4d9e0e
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x20]
mov ebx, ebp
mov ecx, dword [esp + 0x30]
add ebp, edi
mov eax, dword [edx + 0xfc]
movzx esi, byte [eax]
sub ecx, esi
dec ecx
cmp ebp, ecx
jle 0x4d9e6d
mov edx, dword [eax + 8]
mov ebx, esi
test edx, edx
je 0x4d9e69
mov eax, ebp
mov edi, esi
sub edi, dword [esp + 0x1c]
sub eax, ecx
dec eax
dec edi
imul eax, esi
lea eax, [edx + eax*4]
xor edx, edx
test esi, esi
je 0x4d9e69
lea ecx, [esi - 1]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx]
shr eax, 8
movzx eax, al
cmp eax, edi
je 0x4d9e67
inc edx
sub ecx, 4
cmp edx, esi
jl 0x4d9e51
jmp 0x4d9e69
mov ebx, edx
mov edx, dword [esp + 0x20]
cmp ebx, dword [esp + 0x2c]
jle 0x4d9e77
mov dword [esp + 0x2c], ebx
mov eax, dword [edx + 0xf8]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
movzx esi, byte [eax]
cmp edx, esi
jge 0x4d9ecf
mov ecx, dword [eax + 8]
mov dword [esp + 0x24], esi
test ecx, ecx
je 0x4d9ecf
mov eax, esi
mov edi, esi
sub eax, edx
sub edi, ebx
dec eax
dec edi
imul eax, esi
lea ebx, [ecx + eax*4]
xor ecx, ecx
test esi, esi
je 0x4d9ecb
lea edx, [esi - 1]
mov eax, dword [ebx + ecx*4]
shr eax, 8
movzx eax, al
cmp eax, edi
jne 0x4d9ec5
mov dword [esp + 0x24], edx
inc ecx
dec edx
cmp ecx, esi
jl 0x4d9eb4
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov edi, ebx
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x100]
movzx edx, byte [ecx]
sub eax, edx
dec eax
cmp ebp, eax
jle 0x4d9f20
mov ecx, dword [ecx + 8]
mov edi, edx
test ecx, ecx
je 0x4d9f20
sub ebp, eax
mov esi, edx
imul ebp, edx
sub esi, ebx
dec esi
lea ebx, [ecx + ebp*4]
xor ecx, ecx
test edx, edx
je 0x4d9f1c
mov eax, dword [ebx + ecx*4]
shr eax, 8
movzx eax, al
cmp eax, esi
je 0x4d9f19
inc ecx
cmp ecx, edx
jl 0x4d9f05
jmp 0x4d9f1c
sub edi, ecx
dec edi
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp edi, eax
jle 0x4d9f2e
mov eax, edi
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0xb4]
sub edi, eax
mov eax, dword [esi + 0xe4]
sub edi, dword [esp + 0x2c]
test eax, eax
je 0x4d9f4f
mov eax, dword [eax - 4]
cdq
sub eax, edx
sar eax, 1
jmp 0x4d9f51
xor eax, eax
mov ecx, eax
mov dword [esp + 0x74], eax
sub ecx, dword [esi + 0x114]
lea ebx, [eax + 2]
mov dword [esp + 0x88], ecx
mov eax, ebx
xor ecx, ecx
mov dword [esi + 0x118], 0
mov edx, 0x10
mov dword [esp + 0xc4], ebx
mul edx
seto cl
neg ecx
or ecx, eax
jne 0x4d9f94
mov ebp, dword [esp + 0x54]
xor eax, eax
jmp 0x4d9fa5
push ecx
push 8
call dword [esp + 0xac]
mov ebp, dword [esp + 0x5c]
push eax
call ebp
mov dword [esi + 0x110], ebx
xor ecx, ecx
dec ebx
mov dword [esi + 0x10c], eax
mov eax, ebx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
jne 0x4d9fd1
xor esi, esi
mov dword [esp + 0xb0], esi
jmp 0x4d9fe7
push ecx
push 8
call dword [esp + 0xac]
push eax
call ebp
mov esi, eax
mov dword [esp + 0xb0], eax
lea ecx, [ebx*4]
mov edx, esi
call fcn.0055d86a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x9c]
push ebx
push esi
mov edx, dword [eax + 0xe4]
call fcn.004d9896
mov eax, dword [esp + 0x28]
add esp, 8
mov ebp, dword [eax + 0x114]
mov edx, ebp
mov ecx, dword [esi + ebp*4]
mov dword [eax + 0x118], ecx
cmp edx, ebx
jae 0x4da037
mov eax, dword [esi + edx*4]
sub eax, ecx
cmp eax, edi
jg 0x4da037
inc edx
cmp edx, ebx
jb 0x4da029
mov ecx, dword [esp + 0x20]
mov eax, edx
dec edx
mov esi, dword [ecx + 0xdc]
test esi, esi
je 0x4da05f
sub esi, 1
jne 0x4da0f4
test ebp, ebp
jne 0x4da0f4
mov dword [ecx + 0x118], ebp
mov ebp, dword [esp + 0x88]
mov ebx, dword [esp + 0x44]
test ebp, ebp
je 0x4da0c3
mov eax, dword [esp + 0xb4]
mov ecx, dword [ecx + 0x114]
mov dword [esp + 0x94], eax
lea eax, [ebx - 1]
neg eax
mov dword [esp + 0x8c], 0
sbb eax, eax
add eax, 0x401
or eax, dword [esp + 0x70]
push eax
lea eax, [esp + 0x90]
push eax
mov eax, dword [esp + 0x28]
push ebp
mov eax, dword [eax + 0xe4]
lea eax, [eax + ecx*2]
push eax
push dword [esp + 0xac]
call dword [esp + 0x8c]
mov esi, dword [esp + 0x94]
cmp esi, edi
jle 0x4da0d0
mov esi, edi
mov eax, ebx
sub eax, 1
je 0x4da1f7
sub eax, 1
mov eax, dword [esp + 0x8c]
jne 0x4da22d
sub edi, esi
add eax, edi
jmp 0x4da22b
cmp esi, ebp
jge 0x4da120
mov eax, dword [esp + 0xb0]
mov ebp, dword [esp + 0x74]
mov dword [ecx + 0x114], esi
sub ebp, esi
mov dword [esp + 0x88], ebp
mov eax, dword [eax + esi*4]
mov dword [ecx + 0x118], eax
jmp 0x4da066
cmp esi, edx
jle 0x4da187
mov ebx, dword [esp + 0xb0]
mov dword [ecx + 0x114], esi
mov edx, dword [ebx + esi*4]
mov dword [ecx + 0x118], edx
test edi, edi
jle 0x4da165
lea ecx, [ecx]
test esi, esi
je 0x4da175
mov eax, dword [esp + 0x20]
dec esi
mov dword [ecx + 0x114], esi
mov ecx, dword [ebx + esi*4]
mov dword [eax + 0x118], ecx
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x20]
cmp eax, edi
jl 0x4da141
inc esi
mov dword [ecx + 0x114], esi
mov eax, dword [ebx + esi*4]
mov dword [ecx + 0x118], eax
mov ebp, dword [esp + 0x74]
sub ebp, esi
mov dword [esp + 0x88], ebp
jmp 0x4da066
cmp eax, ebx
jne 0x4da05f
mov ebx, dword [esp + 0xb0]
mov dword [ecx + 0x114], edx
mov esi, dword [ebx + edx*4]
mov dword [ecx + 0x118], esi
test edi, edi
jle 0x4da1d1
test edx, edx
je 0x4da1dc
lea eax, [edx - 1]
mov dword [ecx + 0x114], eax
mov edx, eax
mov ecx, dword [ebx + eax*4]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x118], ecx
mov eax, esi
sub eax, ecx
mov ecx, dword [esp + 0x20]
cmp eax, edi
jl 0x4da1a9
test edx, edx
je 0x4da1dc
inc edx
mov dword [ecx + 0x114], edx
mov ebp, dword [esp + 0x74]
mov eax, dword [ebx + edx*4]
sub ebp, edx
mov dword [ecx + 0x118], eax
mov dword [esp + 0x88], ebp
jmp 0x4da066
mov eax, dword [esp + 0xb4]
sub eax, esi
cdq
sub eax, edx
mov edx, dword [esp + 0x2c]
sar eax, 1
cmp eax, edx
jl 0x4da222
mov ecx, dword [esp + 0x24]
add ecx, eax
add ecx, esi
cmp ecx, dword [esp + 0xb4]
jg 0x4da222
sub eax, edx
jmp 0x4da22b
sub edi, esi
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add esi, eax
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x1c]
add ecx, edx
add dword [esp + 0x98], edx
mov edx, dword [esp + 0x20]
add eax, dword [esp + 0x2c]
add esi, dword [esp + 0x2c]
mov dword [esp + 0x8c], eax
cmp dword [edx + 0xc8], 3
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ecx
jne 0x4da31e
test ebp, ebp
je 0x4da31e
push dword [edx + 0xe4]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
test esi, esi
je 0x4da295
mov eax, dword [esi - 4]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
jmp 0x4da297
xor edi, edi
mov ebp, dword [esp + 0x78]
xor eax, eax
cmp ebx, 1
sete al
or eax, 0x18400
push eax
lea eax, [esp + 0x90]
push eax
push edi
push esi
push dword [esp + 0xac]
call ebp
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xe4]
test ecx, ecx
je 0x4da302
lea eax, [edi + edi]
push eax
push ecx
push esi
call fcn.005606cd
add esp, 0xc
test eax, eax
je 0x4da302
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, dword [esp + 0x84]
test ebx, ebx
jle 0x4da309
mov esi, dword [esp + 0x9c]
dec ebx
mov dword [esp + 0x84], ebx
jmp 0x4d9bf1
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0x4c]
sub esi, eax
mov ebp, dword [esp + 0x98]
add edx, eax
mov eax, dword [esp + 0x18]
sub ebp, ecx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x3c], esi
lea edi, [esi + edx]
mov dword [esp + 0x58], ebp
mov esi, dword [esp + 0x6c]
add eax, edi
add esi, ecx
lea ecx, [esi + ebp]
cmp eax, ebx
jle 0x4da35d
mov eax, ebx
sub eax, dword [esp + 0x18]
sub eax, edi
add dword [esp + 0x3c], eax
mov edi, dword [esp + 0xac]
mov ebx, dword [esp + 0xa0]
lea eax, [edi + ecx]
cmp eax, ebx
jle 0x4da37e
mov eax, ebx
sub eax, edi
sub eax, ecx
add ebp, eax
mov dword [esp + 0x58], ebp
xor ecx, ecx
mov dword [esp + 0x74], 0
mov eax, edx
neg eax
test edx, edx
setns cl
dec ecx
and ecx, eax
mov eax, esi
mov dword [esp + 0x7c], ecx
xor ecx, ecx
test edx, edx
sets cl
neg eax
dec ecx
and ecx, edx
xor edx, edx
test esi, esi
mov dword [esp + 0x64], ecx
setns dl
xor ebx, ebx
dec edx
and edx, eax
test esi, esi
mov dword [esp + 0x34], edx
sets bl
add ecx, dword [esp + 0x18]
dec ebx
and ebx, esi
xor esi, esi
mov dword [esp + 0x84], ebx
lea ebp, [edi + ebx]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x50], ebp
mov eax, dword [edi + 0x10c]
mov dword [eax], 0
mov eax, dword [edi + 0x10c]
mov dword [eax + 4], ebp
mov eax, dword [edi + 0x10c]
mov dword [eax + 8], ecx
lea ecx, [ebx + ebp]
mov eax, dword [edi + 0x10c]
mov dword [esp + 0x30], ecx
mov dword [eax + 0xc], ecx
mov eax, dword [edi + 0x110]
dec eax
test eax, eax
jle 0x4da516
xor ebx, ebx
lea esp, [esp]
mov eax, dword [esp + 0xb0]
mov edi, dword [edi + 0x10c]
mov ebp, dword [esp + 0x50]
add edi, ebx
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + esi*4]
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x64]
add edx, eax
mov dword [edi + 0x14], ebp
mov eax, dword [esp + 0x20]
lea ebp, [esi + 1]
mov dword [edi + 0x10], edx
mov dword [edi + 0x1c], ecx
mov dword [esp + 0x28], ebp
mov eax, dword [eax + 0x110]
dec eax
cmp ebp, eax
jl 0x4da47a
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x44]
add ecx, dword [eax + 0x3c]
cmp edx, ecx
jl 0x4da474
mov ecx, edx
mov edx, dword [esp + 0x64]
jmp 0x4da495
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x28]
mov ecx, dword [eax + esi*4 + 4]
mov eax, dword [esp + 0x18]
add eax, edx
add ecx, eax
mov dword [edi + 0x18], ecx
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x4da4fe
cmp eax, 2
je 0x4da4fe
mov eax, dword [esp + 0x18]
sub ecx, dword [edi + 0x118]
add eax, edx
add eax, dword [esp + 0x3c]
cmp ecx, eax
jle 0x4da4fe
mov eax, esi
sub eax, dword [edi + 0x114]
cmp dword [esp + 0x88], eax
jbe 0x4da4fe
mov edx, eax
mov dword [esp + 0x88], edx
test edx, edx
je 0x4da4fe
mov eax, dword [edi + 0xe4]
mov ecx, 0x2400
add cx, word [eax + esi*2]
mov eax, 0x3ff
cmp cx, ax
ja 0x4da4fe
dec edx
mov dword [esp + 0x88], edx
mov eax, dword [edi + 0x110]
mov esi, ebp
dec eax
add ebx, 0x10
cmp esi, eax
jl 0x4da421
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x20]
mov eax, dword [ebp + 0x94]
test eax, eax
je 0x4dc038
xor edx, edx
test eax, eax
jle 0x4dc038
jmp 0x4da538
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0xd0]
add ecx, edx
inc edx
mov eax, ecx
mov dword [esp + 0xa8], edx
mov edx, dword [ebp + 0x10c]
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x80]
lea esi, [ecx + eax*4]
mov eax, dword [esi + 0x18]
mov ebp, eax
shl ebp, 4
add ebp, edx
mov dword [esp + 0x28], esi
test eax, eax
jle 0x4dc021
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x110]
cmp eax, ecx
jge 0x4dc021
mov edi, dword [esi + 0x1c]
add edi, eax
cmp edi, ecx
jl 0x4da594
lea edi, [ecx - 1]
mov eax, dword [ebp]
shl edi, 4
add edi, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edi
mov ecx, dword [edi]
sub ecx, eax
mov dword [esp + 0x68], ecx
cmp ebx, dword [esp + 0x40]
jle 0x4da5bd
mov ecx, ebx
sub ecx, dword [ebp + 4]
mov dword [esp + 0x30], ecx
jmp 0x4da5c1
mov dword [esp + 0x30], ebx
mov esi, dword [esp + 0x28]
mov edx, eax
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x5c]
sub edx, dword [eax + 0x118]
mov eax, dword [ebp + 4]
mov ebx, eax
imul ebx, dword [esp + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x18]
lea ecx, [ebx + edx]
mov dword [esp + 0x24], ecx
cmp edx, eax
jge 0x4da60a
mov eax, dword [esp + 0x64]
sub eax, edx
add eax, dword [esp + 0x18]
sub dword [esp + 0x68], eax
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
add ecx, dword [esp + 0x3c]
add eax, edx
cmp eax, ecx
jle 0x4da632
mov eax, dword [esp + 0x64]
sub eax, edx
add eax, dword [esp + 0x18]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x164]
test ecx, ecx
je 0x4dc021
mov eax, dword [esi + 0x14]
cmp eax, 1
je 0x4dba44
test eax, eax
jne 0x4dae67
mov dword [esp + 0x134], 2
mov dword [esp + 0x138], 1
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], 1
mov dword [esp + 0x148], 2
mov dword [esp + 0x14c], 3
mov dword [esp + 0x150], 4
mov dword [esp + 0x154], 4
mov dword [esp + 0x158], 3
mov dword [esp + 0x11c], 1
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 1
mov dword [esp + 0x12c], 2
mov dword [esp + 0x130], 2
mov dword [esp + 0x10c], 1
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], 1
cmp ecx, 7
jle 0x4da732
lea ebp, [esp + 0x134]
mov dword [esp + 0x4c], 0xa
lea ebx, [eax + 5]
jmp 0x4da774
cmp dword [esp + 0x164], 4
jle 0x4da752
lea ebp, [esp + 0x11c]
mov dword [esp + 0x4c], 6
mov ebx, 3
jmp 0x4da774
cmp dword [esp + 0x164], 2
jle 0x4dba44
lea ebp, [esp + 0x10c]
mov dword [esp + 0x4c], 4
mov ebx, 2
mov eax, dword [esp + 0x160]
sub eax, dword [esp + 0x84]
sub eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
inc ecx
add ecx, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x6c], ebx
lea eax, [ecx + ebx]
cmp eax, edx
jle 0x4da7ab
mov ebx, edx
sub ebx, ecx
mov dword [esp + 0x6c], ebx
push dword [esp + 0x30]
mov eax, dword [esp + 0x164]
mov ecx, esi
push dword [esp + 0x6c]
inc eax
imul eax, dword [esp + 0x50]
push 0
push 0
add dword [esp + 0x34], eax
call fcn.004de229
xor edi, edi
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x68], edi
jle 0x4dc021
mov ecx, dword [esp + 0x4c]
mov eax, edi
cdq
idiv ecx
mov eax, dword [ebp + edx*4]
mov dword [esp + 0x44], eax
cmp eax, ebx
jge 0x4dae53
mov ebp, dword [esi + 0x28]
mov ebx, edi
sub ebx, dword [esi + 0x24]
neg ebp
mov edi, dword [esi]
xor ecx, ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ecx
test edi, edi
je 0x4dae43
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4da828
mov ecx, dword [edi]
jmp 0x4dab07
cmp eax, 1
jne 0x4da83c
mov eax, dword [esi + 4]
imul eax, ebp
cdq
idiv dword [esi + 0x30]
jmp 0x4dab04
cmp eax, 2
jne 0x4da853
mov eax, dword [esi + 0x30]
sub eax, ebp
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x30]
jmp 0x4dab04
cmp eax, 3
jne 0x4da867
mov eax, dword [esi + 4]
imul eax, ebx
cdq
idiv dword [esi + 0x2c]
jmp 0x4dab04
cmp eax, 4
jne 0x4da87e
mov eax, dword [esi + 0x2c]
sub eax, ebx
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x2c]
jmp 0x4dab04
cmp eax, 5
jne 0x4da8be
imul ebx, dword [esi + 4]
imul ebp, dword [esi + 4]
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov edi, eax
imul eax, ebp, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ecx, dword [esi]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, dword [ecx + eax*4]
jmp 0x4dab07
cmp eax, 6
jne 0x4da8d5
mov ecx, dword [esi + 0x30]
lea eax, [ebx + ebp]
imul eax, dword [esi + 4]
add ecx, dword [esi + 0x2c]
jmp 0x4dab01
cmp eax, 7
jne 0x4da920
mov edx, dword [esp + 0x14]
imul edx, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x30]
imul ecx, dword [esi + 4]
imul eax, edx, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ecx, dword [esi]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, dword [ecx + eax*4]
jmp 0x4dab07
cmp eax, 8
jne 0x4da93b
mov edx, dword [esi + 0x2c]
sub ebp, ebx
mov ecx, dword [esi + 0x30]
lea eax, [edx + ebp]
imul eax, dword [esi + 4]
add ecx, edx
jmp 0x4dab01
cmp eax, 9
jne 0x4da967
imul ebx, dword [esi + 4]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x14]
imul ecx, dword [esi + 4]
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
jmp 0x4da903
cmp eax, 0xa
jne 0x4da982
mov edx, dword [esi + 0x30]
sub ebx, ebp
mov ecx, dword [esi + 0x2c]
lea eax, [edx + ebx]
imul eax, dword [esi + 4]
add ecx, edx
jmp 0x4dab01
cmp eax, 0xb
jne 0x4da9b8
mov eax, dword [esi + 0x30]
sub eax, dword [esp + 0x14]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x30]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
jmp 0x4da8a1
cmp eax, 0xc
jne 0x4da9d5
mov ecx, dword [esi + 0x2c]
mov eax, ecx
sub eax, ebx
sub eax, ebp
add eax, dword [esi + 0x30]
imul eax, dword [esi + 4]
add ecx, dword [esi + 0x30]
jmp 0x4dab01
cmp eax, 0xd
jne 0x4da9fe
mov edi, dword [esi + 0x30]
mov eax, edi
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul edi, dword [esi + 0x2c]
sub ecx, ebx
imul eax, ecx
mov ecx, dword [esi]
imul eax, dword [esi + 4]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4dab07
cmp eax, 0xe
jne 0x4daa1b
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul eax, dword [esi + 4]
imul eax, ebx
imul ecx, dword [esi + 0x30]
jmp 0x4dab01
cmp eax, 0xf
jne 0x4daa38
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, dword [esi + 4]
imul eax, ebp
imul ecx, dword [esi + 0x2c]
jmp 0x4dab01
cmp eax, 0x10
jne 0x4daa52
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x2c]
imul eax, ebx
imul eax, ebp
jmp 0x4dab01
cmp eax, 0x11
jne 0x4daa86
mov edx, dword [esi + 0x2c]
mov eax, edx
mov edi, dword [esi + 0x30]
sub eax, ebx
mov ecx, edi
imul eax, eax
sub ecx, ebp
imul edx, edx
imul ecx, ecx
imul edi, edi
add eax, ecx
mov ecx, dword [esi]
imul eax, dword [esi + 4]
add edi, edx
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4dab07
cmp eax, 0x12
jne 0x4daab3
mov ecx, dword [esi + 0x30]
mov eax, ecx
mov edi, dword [esi + 0x2c]
sub eax, ebp
imul eax, eax
imul ebx, ebx
imul ecx, ecx
imul edi, edi
add eax, ebx
imul eax, dword [esi + 4]
add edi, ecx
mov ecx, dword [esi]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4dab07
cmp eax, 0x13
jne 0x4daae0
mov edi, dword [esi + 0x2c]
mov eax, edi
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, eax
imul ebp, ebp
imul ecx, ecx
imul edi, edi
add eax, ebp
imul eax, dword [esi + 4]
add edi, ecx
mov ecx, dword [esi]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4dab07
cmp eax, 0x14
jne 0x4dab0b
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
imul ebx, ebx
imul ebp, ebp
imul eax, eax
imul ecx, ecx
add ebx, ebp
imul ebx, dword [esi + 4]
add ecx, eax
mov eax, ebx
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
mov dword [esp + 0x10], ecx
mov eax, dword [esi + 0x10]
mov edi, dword [esp + 0x2c]
test eax, eax
je 0x4dabe4
push 0
push edi
mov ecx, eax
call fcn.004dddaa
mov edx, dword [esp + 0x10]
mov ebx, eax
mov ecx, edx
mov dword [esp + 0x14], ebx
sar ecx, 0x18
movzx ebp, cl
mov dword [esp + 0x30], ebp
test cl, cl
je 0x4dabea
movzx eax, bl
mov dword [esp + 0x28], eax
mov eax, ebx
sar eax, 8
movzx edi, al
mov eax, ebx
sar eax, 0x10
movzx ebx, al
mov eax, edx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, ebp
imul ecx
mov eax, dword [esp + 0x10]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x30]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
mov edi, dword [esp + 0x2c]
shl ebp, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
mov ebx, dword [esp + 0x14]
shl eax, 0x10
and ebx, 0xff000000
or ebp, eax
mov eax, dword [esp + 0x10]
movzx ecx, al
mov eax, 0x80808081
sub ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0x30]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x28]
or ebp, eax
or ebx, ebp
jmp 0x4dabe6
mov ebx, ecx
mov dword [esp + 0x14], ebx
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x5c], edx
test al, al
je 0x4dae47
mov eax, dword [esp + 0x44]
imul eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xb8]
add eax, edi
add eax, dword [esp + 0x24]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx]
movzx eax, cl
mov dword [esp + 0x60], eax
mov eax, ecx
sar eax, 8
movzx ebp, al
mov eax, ecx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx eax, al
mov dword [esp + 0x10], eax
mov eax, ebx
sar eax, 0x10
movzx eax, al
movzx ecx, bl
mov dword [esp + 0x44], ecx
mov ecx, eax
mov dword [esp + 0x28], eax
sub ecx, edi
imul ecx, edx
mov eax, 0x80808081
imul ecx
mov eax, 0x80808081
add edx, ecx
mov ecx, dword [esp + 0x10]
sar edx, 7
sub ecx, ebp
imul ecx, dword [esp + 0x5c]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, edi
mov edi, dword [esp + 0x2c]
shl ebx, 0x10
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x44]
sub ecx, dword [esp + 0x60]
imul ecx, dword [esp + 0x5c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
shl eax, 8
or ebx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x30]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
add eax, dword [esp + 0x60]
or ebx, eax
sar edx, 0x19
mov eax, dword [ecx]
and edx, 0x7f
and eax, 0xff000000
mov dword [esp + 0x14], edx
or ebx, eax
mov dword [ecx], ebx
test edi, edi
jle 0x4dad87
mov ecx, dword [ecx - 4]
movzx eax, cl
mov dword [esp + 0x60], eax
mov eax, ecx
sar eax, 8
movzx ebx, al
mov eax, ecx
mov ecx, dword [esp + 0x28]
sar eax, 0x10
movzx edi, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, edx
imul ecx
mov eax, 0x80808081
add edx, ecx
mov ecx, dword [esp + 0x10]
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x14]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
mov edi, dword [esp + 0x2c]
shl ebp, 0x10
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x44]
sub ecx, dword [esp + 0x60]
imul ecx, dword [esp + 0x14]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
shl eax, 8
or ebp, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x30]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
add eax, dword [esp + 0x60]
or ebp, eax
mov eax, dword [ecx - 4]
and eax, 0xff000000
or ebp, eax
mov dword [ecx - 4], ebp
jmp 0x4dad8b
mov dword [esp + 0x14], edx
lea eax, [edi + 1]
cmp eax, dword [esp + 0x68]
jge 0x4dae47
mov ecx, dword [ecx + 4]
mov eax, ecx
mov ebx, dword [esp + 0x28]
sar eax, 8
movzx edi, al
mov eax, ecx
sar eax, 0x10
movzx ebp, cl
movzx ecx, al
mov eax, 0x80808081
sub ebx, ecx
imul ebx, edx
imul ebx
mov eax, 0x80808081
add edx, ebx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov edx, dword [esp + 0x10]
sub edx, edi
add ebx, ecx
imul edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
shl ebx, 0x10
mov dword [esp + 0x10], edx
imul edx
add edx, dword [esp + 0x10]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
mov edi, dword [esp + 0x44]
shl eax, 8
sub edi, ebp
imul edi, dword [esp + 0x14]
or ebx, eax
mov eax, 0x80808081
imul edi
add edx, edi
mov edi, dword [esp + 0x2c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
mov ebp, dword [esp + 0x1c]
or ebx, eax
mov eax, dword [ecx + 4]
and eax, 0xff000000
or ebx, eax
inc edi
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x2c], edi
jmp 0x4da7df
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
inc edi
mov dword [esp + 0x2c], edi
cmp edi, dword [esp + 0x68]
jl 0x4da7e3
jmp 0x4dc021
cmp eax, 2
jne 0x4db3d5
mov eax, dword [esp + 0x40]
xor ebp, ebp
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x4c], ebp
cmp ecx, eax
jle 0x4dae8a
mov ebx, eax
mov dword [esp + 0x5c], ebx
jmp 0x4dae90
mov ebx, ecx
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x68]
mov ecx, esi
push ebx
push edi
push 0
push 0
call fcn.004de229
test ebx, ebx
jle 0x4dc021
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x48]
lea eax, [ecx + eax*4]
mov dword [esp + 0x6c], eax
mov edi, edi
xor ecx, ecx
mov dword [esp + 0x44], ecx
test edi, edi
jle 0x4db3b6
mov dword [esp + 0x24], eax
sub ebp, dword [esi + 0x28]
mov ebx, ecx
sub ebx, dword [esi + 0x24]
xor ecx, ecx
mov edi, dword [esi]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x10], ecx
test edi, edi
je 0x4db38a
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4daf01
mov ecx, dword [edi]
jmp 0x4db1e3
cmp eax, 1
jne 0x4daf15
mov eax, dword [esi + 4]
imul eax, ebp
cdq
idiv dword [esi + 0x30]
jmp 0x4db1e0
cmp eax, 2
jne 0x4daf2c
mov eax, dword [esi + 0x30]
sub eax, ebp
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x30]
jmp 0x4db1e0
cmp eax, 3
jne 0x4daf40
mov eax, dword [esi + 4]
imul eax, ebx
cdq
idiv dword [esi + 0x2c]
jmp 0x4db1e0
cmp eax, 4
jne 0x4daf57
mov eax, dword [esi + 0x2c]
sub eax, ebx
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x2c]
jmp 0x4db1e0
cmp eax, 5
jne 0x4daf9a
mov ecx, dword [esi + 4]
mov eax, ecx
imul eax, ebx
imul ecx, ebp
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ecx, dword [esi]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, dword [ecx + eax*4]
jmp 0x4db1e3
cmp eax, 6
jne 0x4dafb1
mov ecx, dword [esi + 0x30]
lea eax, [ebx + ebp]
imul eax, dword [esi + 4]
add ecx, dword [esi + 0x2c]
jmp 0x4db1dd
cmp eax, 7
jne 0x4daffc
mov eax, dword [esi + 4]
imul eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x28]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ecx, dword [esi]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, dword [ecx + eax*4]
jmp 0x4db1e3
cmp eax, 8
jne 0x4db017
mov edx, dword [esi + 0x2c]
sub ebp, ebx
mov ecx, dword [esi + 0x30]
lea eax, [edx + ebp]
imul eax, dword [esi + 4]
add ecx, edx
jmp 0x4db1dd
cmp eax, 9
jne 0x4db043
imul ebx, dword [esi + 4]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x30]
imul ecx, dword [esi + 4]
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
jmp 0x4dafdf
cmp eax, 0xa
jne 0x4db05e
mov edx, dword [esi + 0x30]
sub ebx, ebp
mov ecx, dword [esi + 0x2c]
lea eax, [edx + ebx]
imul eax, dword [esi + 4]
add ecx, edx
jmp 0x4db1dd
cmp eax, 0xb
jne 0x4db094
mov eax, dword [esi + 0x30]
sub eax, dword [esp + 0x30]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x28]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
jmp 0x4daf7d
cmp eax, 0xc
jne 0x4db0b1
mov ecx, dword [esi + 0x2c]
mov eax, ecx
sub eax, ebx
sub eax, ebp
add eax, dword [esi + 0x30]
imul eax, dword [esi + 4]
add ecx, dword [esi + 0x30]
jmp 0x4db1dd
cmp eax, 0xd
jne 0x4db0da
mov edi, dword [esi + 0x30]
mov eax, edi
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul edi, dword [esi + 0x2c]
sub ecx, ebx
imul eax, ecx
mov ecx, dword [esi]
imul eax, dword [esi + 4]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4db1e3
cmp eax, 0xe
jne 0x4db0f7
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul eax, dword [esi + 4]
imul eax, ebx
imul ecx, dword [esi + 0x30]
jmp 0x4db1dd
cmp eax, 0xf
jne 0x4db114
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, dword [esi + 4]
imul eax, ebp
imul ecx, dword [esi + 0x2c]
jmp 0x4db1dd
cmp eax, 0x10
jne 0x4db12e
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x2c]
imul eax, ebx
imul eax, ebp
jmp 0x4db1dd
cmp eax, 0x11
jne 0x4db162
mov edx, dword [esi + 0x2c]
mov eax, edx
mov edi, dword [esi + 0x30]
sub eax, ebx
mov ecx, edi
imul eax, eax
sub ecx, ebp
imul edx, edx
imul ecx, ecx
imul edi, edi
add eax, ecx
mov ecx, dword [esi]
imul eax, dword [esi + 4]
add edi, edx
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4db1e3
cmp eax, 0x12
jne 0x4db18f
mov ecx, dword [esi + 0x30]
mov eax, ecx
mov edi, dword [esi + 0x2c]
sub eax, ebp
imul eax, eax
imul ebx, ebx
imul ecx, ecx
imul edi, edi
add eax, ebx
imul eax, dword [esi + 4]
add edi, ecx
mov ecx, dword [esi]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4db1e3
cmp eax, 0x13
jne 0x4db1bc
mov edi, dword [esi + 0x2c]
mov eax, edi
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, eax
imul ebp, ebp
imul ecx, ecx
imul edi, edi
add eax, ebp
imul eax, dword [esi + 4]
add edi, ecx
mov ecx, dword [esi]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4db1e3
cmp eax, 0x14
jne 0x4db1e7
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
imul ebx, ebx
imul ebp, ebp
imul eax, eax
imul ecx, ecx
add ebx, ebp
imul ebx, dword [esi + 4]
add ecx, eax
mov eax, ebx
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
mov dword [esp + 0x10], ecx
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4db2bd
push dword [esp + 0x4c]
mov ecx, eax
push dword [esp + 0x48]
call fcn.004dddaa
mov edx, dword [esp + 0x10]
mov ebx, eax
mov ecx, edx
mov dword [esp + 0x1c], ebx
sar ecx, 0x18
movzx ebp, cl
mov dword [esp + 0x28], ebp
test cl, cl
je 0x4db2c3
movzx eax, bl
mov dword [esp + 0x60], eax
mov eax, ebx
sar eax, 8
movzx edi, al
mov eax, ebx
sar eax, 0x10
movzx ebx, al
mov eax, edx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, ebp
imul ecx
mov eax, dword [esp + 0x10]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x28]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
shl ebp, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
mov ebx, dword [esp + 0x1c]
shl eax, 0x10
and ebx, 0xff000000
or ebp, eax
mov eax, dword [esp + 0x10]
movzx ecx, al
mov eax, 0x80808081
sub ecx, dword [esp + 0x60]
imul ecx, dword [esp + 0x28]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x60]
or ebp, eax
or ebx, ebp
jmp 0x4db2bf
mov ebx, ecx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x24]
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x28], edx
mov ecx, dword [ecx]
mov dword [esp + 0x30], ecx
test al, al
je 0x4db386
movzx eax, cl
mov dword [esp + 0x60], eax
mov eax, ecx
sar eax, 8
movzx edi, al
mov eax, ecx
sar eax, 0x10
movzx ebx, al
mov eax, dword [esp + 0x1c]
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x1c]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x28]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
shl ebp, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
shl eax, 0x10
or ebp, eax
mov eax, dword [esp + 0x1c]
movzx ecx, al
mov eax, 0x80808081
sub ecx, dword [esp + 0x60]
imul ecx, dword [esp + 0x28]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x60]
or ebp, eax
mov eax, dword [esp + 0x30]
and eax, 0xff000000
or ebp, eax
mov eax, dword [esp + 0x24]
mov dword [eax], ebp
jmp 0x4db38a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
add eax, 4
mov edi, dword [esp + 0x68]
inc ecx
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], eax
cmp ecx, edi
jl 0x4daed3
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x48]
lea ecx, [edx*4]
inc ebp
add eax, ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x6c], eax
cmp ebp, ebx
jl 0x4daec1
jmp 0x4dc021
cmp eax, 3
jne 0x4db982
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x118]
sub ebx, ecx
add ebx, dword [esp + 0x60]
cmp dword [esp + 0x60], ecx
jle 0x4dc021
mov eax, dword [edx + 0x124]
xor edi, edi
mov dword [esp + 0x4c], edi
mov eax, dword [eax + 0x54]
mov ecx, dword [eax + 8]
mov eax, 0x2aaaaaab
imul ecx, dword [esi + 0xc]
imul ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
sar edx, 4
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov dword [esp + 0x2c], ebp
cmp ecx, eax
jle 0x4db435
mov dword [esp + 0x30], eax
jmp 0x4db43b
mov eax, ecx
mov dword [esp + 0x30], ecx
push eax
push ebp
push 0
push 0
mov ecx, esi
call fcn.004de229
cmp dword [esp + 0x30], edi
jle 0x4dc021
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x48]
lea eax, [eax + ebx*4]
mov dword [esp + 0x44], eax
xor ecx, ecx
mov dword [esp + 0x5c], ecx
test ebp, ebp
jle 0x4db961
mov dword [esp + 0x24], eax
sub ebp, ecx
mov ebx, edi
sub ebp, dword [esi + 0x24]
xor ecx, ecx
sub ebx, dword [esi + 0x28]
dec ebp
mov edi, dword [esi]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x10], ecx
test edi, edi
je 0x4db935
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4db4a7
mov ecx, dword [edi]
jmp 0x4db790
cmp eax, 1
jne 0x4db4be
mov eax, dword [esi + 4]
imul eax, ebx
cdq
idiv dword [esi + 0x30]
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 2
jne 0x4db4d8
mov eax, dword [esi + 0x30]
sub eax, ebx
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x30]
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 3
jne 0x4db4ef
mov eax, dword [esi + 4]
imul eax, ebp
cdq
idiv dword [esi + 0x2c]
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 4
jne 0x4db509
mov eax, dword [esi + 0x2c]
sub eax, ebp
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x2c]
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 5
jne 0x4db546
mov eax, ebp
imul ebx, dword [esi + 4]
imul eax, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov edi, eax
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x30]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4db78b
cmp eax, 6
jne 0x4db563
lea eax, [ebx + ebp]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
add ecx, dword [esi + 0x2c]
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 7
jne 0x4db5ab
mov eax, dword [esi + 4]
imul eax, ebx
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x1c]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ebp, dword [esp + 0x1c]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4db78b
cmp eax, 8
jne 0x4db5b9
mov eax, dword [esi + 0x2c]
sub eax, ebp
add eax, ebx
jmp 0x4db54e
cmp eax, 9
jne 0x4db5e9
mov eax, dword [esi + 4]
imul eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x28]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
jmp 0x4db58f
cmp eax, 0xa
jne 0x4db60a
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebx
add ecx, dword [esi + 0x30]
add eax, ebp
imul eax, dword [esi + 4]
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 0xb
jne 0x4db657
mov eax, dword [esi + 0x30]
sub eax, dword [esp + 0x28]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x1c]
imul ecx, dword [esi + 4]
mov ebp, dword [esp + 0x1c]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4db78b
cmp eax, 0xc
jne 0x4db67a
mov ecx, dword [esi + 0x2c]
mov eax, ecx
add ecx, dword [esi + 0x30]
sub eax, ebp
sub eax, ebx
add eax, dword [esi + 0x30]
imul eax, dword [esi + 4]
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 0xd
jne 0x4db697
mov edi, dword [esi + 0x30]
mov eax, edi
mov ecx, dword [esi + 0x2c]
sub eax, ebx
sub ecx, ebp
imul eax, ecx
imul edi, dword [esi + 0x2c]
jmp 0x4db784
cmp eax, 0xe
jne 0x4db6ba
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebx
imul eax, dword [esi + 4]
imul ecx, dword [esi + 0x30]
imul eax, ebp
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 0xf
jne 0x4db6dd
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
sub eax, ebp
imul eax, dword [esi + 4]
imul ecx, dword [esi + 0x2c]
imul eax, ebx
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 0x10
jne 0x4db6fd
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x2c]
imul eax, ebp
imul eax, ebx
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
jmp 0x4db790
cmp eax, 0x11
jne 0x4db722
mov edx, dword [esi + 0x2c]
mov eax, edx
mov edi, dword [esi + 0x30]
sub eax, ebp
mov ecx, edi
imul eax, eax
sub ecx, ebx
imul edi, edi
imul ecx, ecx
imul edx, edx
add eax, ecx
add edi, edx
jmp 0x4db784
cmp eax, 0x12
jne 0x4db745
mov edx, dword [esi + 0x30]
mov eax, ebp
mov edi, dword [esi + 0x2c]
mov ecx, edx
sub ecx, ebx
imul eax, ebp
imul ecx, ecx
imul edi, edi
imul edx, edx
add eax, ecx
add edi, edx
jmp 0x4db784
cmp eax, 0x13
jne 0x4db767
mov edi, dword [esi + 0x2c]
mov ecx, edi
mov edx, dword [esi + 0x30]
sub ecx, ebp
imul ebx, ebx
imul ecx, ecx
imul edi, edi
imul edx, edx
add edi, edx
lea eax, [ecx + ebx]
jmp 0x4db784
cmp eax, 0x14
jne 0x4db794
mov ecx, dword [esi + 0x30]
mov eax, ebp
mov edi, dword [esi + 0x2c]
imul eax, ebp
imul ebx, ebx
imul edi, edi
imul ecx, ecx
add eax, ebx
add edi, ecx
imul eax, dword [esi + 4]
cdq
idiv edi
mov ecx, dword [esi]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x10], ecx
mov edx, dword [esi + 0x10]
test edx, edx
je 0x4db86c
mov eax, dword [esi + 0x24]
mov ecx, edx
push dword [esp + 0x4c]
add eax, ebp
push eax
call fcn.004dddaa
mov edx, dword [esp + 0x10]
mov ebx, eax
mov ecx, edx
mov dword [esp + 0x1c], ebx
sar ecx, 0x18
movzx ebp, cl
mov dword [esp + 0x28], ebp
test cl, cl
je 0x4db872
movzx eax, bl
mov dword [esp + 0x60], eax
mov eax, ebx
sar eax, 8
movzx edi, al
mov eax, ebx
sar eax, 0x10
movzx ebx, al
mov eax, edx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, ebp
imul ecx
mov eax, dword [esp + 0x10]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x28]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
shl ebp, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
mov ebx, dword [esp + 0x1c]
shl eax, 0x10
and ebx, 0xff000000
or ebp, eax
mov eax, dword [esp + 0x10]
movzx ecx, al
mov eax, 0x80808081
sub ecx, dword [esp + 0x60]
imul ecx, dword [esp + 0x28]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x60]
or ebp, eax
or ebx, ebp
jmp 0x4db86e
mov ebx, ecx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x24]
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x28], edx
mov ecx, dword [ecx]
mov dword [esp + 0x6c], ecx
test al, al
je 0x4db935
movzx eax, cl
mov dword [esp + 0x60], eax
mov eax, ecx
sar eax, 8
movzx edi, al
mov eax, ecx
sar eax, 0x10
movzx ebx, al
mov eax, dword [esp + 0x1c]
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x1c]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x28]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
shl ebp, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
shl eax, 0x10
or ebp, eax
mov eax, dword [esp + 0x1c]
movzx ecx, al
mov eax, 0x80808081
sub ecx, dword [esp + 0x60]
imul ecx, dword [esp + 0x28]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x60]
or ebp, eax
mov eax, dword [esp + 0x6c]
and eax, 0xff000000
or ebp, eax
mov eax, dword [esp + 0x24]
mov dword [eax], ebp
jmp 0x4db939
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x5c]
sub eax, 4
mov ebp, dword [esp + 0x2c]
inc ecx
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x24], eax
cmp ecx, ebp
jl 0x4db476
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
lea ecx, [edx*4]
inc edi
add eax, ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x44], eax
cmp edi, dword [esp + 0x30]
jl 0x4db464
jmp 0x4dc021
cmp eax, 4
jne 0x4dc021
cmp dword [esp + 0x74], 0
jne 0x4db9d2
mov ebx, dword [esp + 0xc4]
xor ecx, ecx
mov eax, ebx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
jne 0x4db9b1
xor eax, eax
jmp 0x4db9c0
push ecx
push 8
call dword [esp + 0xac]
push eax
call dword [esp + 0x60]
lea ecx, [ebx*4]
mov dword [esp + 0x74], eax
mov edx, eax
call fcn.0055d86a
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x118]
mov eax, dword [edi + 0xc]
sub eax, dword [esp + 0x84]
sub eax, dword [esp + 0xac]
push eax
mov eax, dword [edi + 8]
sub eax, dword [esp + 0x68]
sub eax, ecx
sub eax, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 4]
sub eax, dword [esp + 0x8c]
sub eax, dword [esp + 0xb4]
push eax
mov eax, dword [ebp]
sub eax, dword [esp + 0x70]
sub eax, ecx
mov ecx, esi
sub eax, dword [esp + 0x24]
push eax
call fcn.004de229
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
lea eax, [edx + ecx]
cmp edx, eax
jge 0x4dc021
mov eax, dword [esp + 0x74]
lea edi, [eax + edx*4]
mov eax, esi
rep stosd dword es:[edi], eax
jmp 0x4dc021
mov eax, dword [esp + 0x20]
mov edi, 2
mov eax, dword [eax + 0x124]
mov eax, dword [eax + 0x54]
mov ecx, dword [eax + 8]
mov eax, 0x2aaaaaab
imul ecx, dword [esi + 0xc]
imul ecx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp dword [esp + 0x164], 3
mov dword [esp + 0x1c], ebx
jge 0x4dba81
mov edi, 1
mov ecx, dword [esp + 0x164]
lea eax, [edi + ebx]
cmp ecx, eax
jg 0x4dba98
mov ebx, ecx
sub ebx, edi
dec ebx
mov dword [esp + 0x1c], ebx
push ebx
push dword [esp + 0x6c]
mov ecx, esi
push 0
push 0
call fcn.004de229
mov ecx, dword [esp + 0x160]
mov edx, dword [ebp + 4]
sub edx, dword [esp + 0x84]
sub edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x24]
lea eax, [ecx + edi]
imul eax, dword [esp + 0x48]
add edx, ecx
mov ecx, dword [esp + 0x40]
add edx, edi
add ebx, eax
mov eax, dword [esp + 0x1c]
add eax, edx
cmp eax, ecx
jle 0x4dbaea
mov eax, ecx
sub eax, edx
mov dword [esp + 0x1c], eax
jmp 0x4dbaee
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x14], edx
test eax, eax
jle 0x4dc021
mov ecx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x48]
lea ebx, [ecx + ebx*4]
mov dword [esp + 0x5c], ebx
xor ecx, ecx
mov dword [esp + 0x44], ecx
test ebp, ebp
jle 0x4dc007
mov eax, ebx
mov dword [esp + 0x4c], ebx
mov edi, dword [esi]
mov ebx, ecx
sub ebx, dword [esi + 0x24]
mov ebp, edx
sub ebp, dword [esi + 0x28]
xor ecx, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x10], ecx
test edi, edi
je 0x4dbfdd
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4dbb56
mov ecx, dword [edi]
jmp 0x4dbe35
cmp eax, 1
jne 0x4dbb6a
mov eax, dword [esi + 4]
imul eax, ebp
cdq
idiv dword [esi + 0x30]
jmp 0x4dbe2e
cmp eax, 2
jne 0x4dbb81
mov eax, dword [esi + 0x30]
sub eax, ebp
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x30]
jmp 0x4dbe2e
cmp eax, 3
jne 0x4dbb95
mov eax, dword [esi + 4]
imul eax, ebx
cdq
idiv dword [esi + 0x2c]
jmp 0x4dbe2e
cmp eax, 4
jne 0x4dbbac
mov eax, dword [esi + 0x2c]
sub eax, ebx
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x2c]
jmp 0x4dbe2e
cmp eax, 5
jne 0x4dbbec
imul ebx, dword [esi + 4]
imul ebp, dword [esi + 4]
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov edi, eax
imul eax, ebp, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ecx, dword [esi]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, dword [ecx + eax*4]
jmp 0x4dbe31
cmp eax, 6
jne 0x4dbc03
mov ecx, dword [esi + 0x30]
lea eax, [ebx + ebp]
imul eax, dword [esi + 4]
add ecx, dword [esi + 0x2c]
jmp 0x4dbe2b
cmp eax, 7
jne 0x4dbc4e
mov eax, dword [esp + 0x30]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x28]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ecx, dword [esi]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, dword [ecx + eax*4]
jmp 0x4dbe31
cmp eax, 8
jne 0x4dbc69
mov edx, dword [esi + 0x2c]
sub ebp, ebx
mov ecx, dword [esi + 0x30]
lea eax, [edx + ebp]
imul eax, dword [esi + 4]
add ecx, edx
jmp 0x4dbe2b
cmp eax, 9
jne 0x4dbc95
imul ebx, dword [esi + 4]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x30]
imul ecx, dword [esi + 4]
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
jmp 0x4dbc31
cmp eax, 0xa
jne 0x4dbcb0
mov edx, dword [esi + 0x30]
sub ebx, ebp
mov ecx, dword [esi + 0x2c]
lea eax, [edx + ebx]
imul eax, dword [esi + 4]
add ecx, edx
jmp 0x4dbe2b
cmp eax, 0xb
jne 0x4dbce2
mov eax, dword [esi + 0x2c]
sub eax, dword [esp + 0x28]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x30]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
jmp 0x4dbbcb
cmp eax, 0xc
jne 0x4dbcff
mov ecx, dword [esi + 0x2c]
mov eax, ecx
sub eax, ebx
sub eax, ebp
add eax, dword [esi + 0x30]
imul eax, dword [esi + 4]
add ecx, dword [esi + 0x30]
jmp 0x4dbe2b
cmp eax, 0xd
jne 0x4dbd28
mov edi, dword [esi + 0x30]
mov ecx, edi
mov eax, dword [esi + 0x2c]
sub ecx, ebp
imul edi, dword [esi + 0x2c]
sub eax, ebx
imul eax, ecx
mov ecx, dword [esi]
imul eax, dword [esi + 4]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4dbe31
cmp eax, 0xe
jne 0x4dbd45
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul eax, dword [esi + 4]
imul eax, ebx
imul ecx, dword [esi + 0x30]
jmp 0x4dbe2b
cmp eax, 0xf
jne 0x4dbd62
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, dword [esi + 4]
imul eax, ebp
imul ecx, dword [esi + 0x2c]
jmp 0x4dbe2b
cmp eax, 0x10
jne 0x4dbd7c
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x2c]
imul eax, ebx
imul eax, ebp
jmp 0x4dbe2b
cmp eax, 0x11
jne 0x4dbdb0
mov edx, dword [esi + 0x2c]
mov ecx, edx
mov edi, dword [esi + 0x30]
sub ecx, ebx
mov eax, edi
imul ecx, ecx
sub eax, ebp
imul edx, edx
imul eax, eax
imul edi, edi
add eax, ecx
mov ecx, dword [esi]
imul eax, dword [esi + 4]
add edi, edx
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4dbe31
cmp eax, 0x12
jne 0x4dbddd
mov ecx, dword [esi + 0x30]
mov eax, ecx
mov edi, dword [esi + 0x2c]
sub eax, ebp
imul eax, eax
imul ebx, ebx
imul ecx, ecx
imul edi, edi
add eax, ebx
imul eax, dword [esi + 4]
add edi, ecx
mov ecx, dword [esi]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4dbe31
cmp eax, 0x13
jne 0x4dbe0a
mov edi, dword [esi + 0x2c]
mov eax, edi
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, eax
imul ebp, ebp
imul ecx, ecx
imul edi, edi
add eax, ebp
imul eax, dword [esi + 4]
add edi, ecx
mov ecx, dword [esi]
cdq
idiv edi
mov ecx, dword [ecx + eax*4]
jmp 0x4dbe31
cmp eax, 0x14
jne 0x4dbe39
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
imul ebx, ebx
imul ebp, ebp
imul eax, eax
imul ecx, ecx
add ebx, ebp
imul ebx, dword [esi + 4]
add ecx, eax
mov eax, ebx
cdq
idiv ecx
mov ecx, dword [edi + eax*4]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4dbf0c
push edx
push dword [esp + 0x48]
mov ecx, eax
call fcn.004dddaa
mov edx, dword [esp + 0x10]
mov ebx, eax
mov ecx, edx
mov dword [esp + 0x24], ebx
sar ecx, 0x18
movzx ebp, cl
mov dword [esp + 0x28], ebp
test cl, cl
je 0x4dbf12
movzx eax, bl
mov dword [esp + 0x60], eax
mov eax, ebx
sar eax, 8
movzx edi, al
mov eax, ebx
sar eax, 0x10
movzx ebx, al
mov eax, edx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, ebp
imul ecx
mov eax, dword [esp + 0x10]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x28]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
shl ebp, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
mov ebx, dword [esp + 0x24]
shl eax, 0x10
and ebx, 0xff000000
or ebp, eax
mov eax, dword [esp + 0x10]
movzx ecx, al
mov eax, 0x80808081
sub ecx, dword [esp + 0x60]
imul ecx, dword [esp + 0x28]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x60]
or ebp, eax
or ebx, ebp
jmp 0x4dbf0e
mov ebx, ecx
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x4c]
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x28], edx
mov ecx, dword [ecx]
mov dword [esp + 0x30], ecx
test al, al
je 0x4dbfd5
movzx eax, cl
mov dword [esp + 0x60], eax
mov eax, ecx
sar eax, 8
movzx edi, al
mov eax, ecx
sar eax, 0x10
movzx ebx, al
mov eax, dword [esp + 0x24]
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x24]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x28]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
shl ebp, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
shl eax, 0x10
or ebp, eax
mov eax, dword [esp + 0x24]
movzx ecx, al
mov eax, 0x80808081
sub ecx, dword [esp + 0x60]
imul ecx, dword [esp + 0x28]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x60]
or ebp, eax
mov eax, dword [esp + 0x30]
and eax, 0xff000000
or ebp, eax
mov eax, dword [esp + 0x4c]
mov dword [eax], ebp
jmp 0x4dbfd9
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
add eax, 4
inc ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], ecx
cmp ecx, dword [esp + 0x68]
jl 0x4dbb26
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x48]
lea ecx, [edi*4]
inc edx
add ebx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x5c], ebx
cmp edx, eax
jl 0x4dbb12
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0xa8]
cmp edx, dword [ebp + 0x94]
jl 0x4da534
push dword [esp + 0xb0]
push 0
call dword [esp + 0xac]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call ebx
mov eax, dword [esp + 0x3c]
push dword [esp + 0x70]
mov ecx, dword [ebp + 0x114]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x90]
push eax
mov eax, dword [ebp + 0xe4]
push dword [esp + 0x90]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
lea eax, [eax + ecx*2]
push eax
push dword [esp + 0xac]
call dword [esp + 0x8c]
push dword [esp + 0x98]
mov edi, dword [esp + 0x3c]
mov ecx, edi
push dword [esp + 0x98]
push 0
push 0
call fcn.004de229
cmp dword [ebp + 0x98], 0
jne 0x4dc83b
mov ebp, dword [esp + 0x50]
imul ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
add ebp, dword [esp + 0x64]
add ebp, dword [esp + 0x18]
cmp edx, dword [esp + 0x58]
jge 0x4dc7d8
mov ecx, dword [esp + 0x48]
lea ebx, [ebx]
mov esi, dword [esp + 0x7c]
xor ebx, ebx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x28], ebx
cmp esi, eax
jge 0x4dc7b7
mov ecx, edx
sub eax, esi
imul ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
add ecx, esi
lea edx, [edx + ebp*4]
shl ecx, 2
add ebp, eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x50], ebp
jmp 0x4dc151
mov eax, dword [esp + 0xc0]
add eax, ecx
mov dword [esp + 0xa8], eax
cmp dword [eax], 0
je 0x4dc78e
cmp dword [esp + 0x74], 0
mov ebp, edi
je 0x4dc1b2
mov edi, dword [esp + 0x20]
lea edx, [ebx + 1]
mov ecx, dword [esp + 0x64]
shl edx, 4
add ecx, esi
add ecx, dword [esp + 0x18]
add edx, dword [edi + 0x10c]
mov eax, dword [edi + 0x118]
add eax, ecx
cmp eax, dword [edx]
jle 0x4dc1a5
lea edx, [edx + 0x10]
inc ebx
cmp eax, dword [edx]
jg 0x4dc199
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x74]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x4dc1b2
mov ebp, eax
mov edx, dword [esp + 0x34]
mov edi, esi
sub edi, dword [ebp + 0x24]
mov ebx, edx
sub ebx, dword [ebp + 0x28]
mov esi, dword [ebp]
mov dword [esp + 0x70], edi
mov dword [esp + 0x78], ebx
mov dword [esp + 0x10], 0
test esi, esi
jne 0x4dc1e0
mov dword [esp + 0x2c], esi
jmp 0x4dc654
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4dc1f2
mov ebx, dword [esi]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 1
jne 0x4dc211
mov eax, dword [ebp + 4]
imul eax, ebx
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 2
jne 0x4dc233
mov eax, dword [ebp + 0x30]
sub eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 3
jne 0x4dc252
mov eax, dword [ebp + 4]
imul eax, edi
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 4
jne 0x4dc274
mov eax, dword [ebp + 0x2c]
sub eax, edi
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 5
jne 0x4dc29c
imul edi, dword [ebp + 4]
imul ebx, dword [ebp + 4]
imul eax, edi, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov esi, eax
imul eax, ebx, 0x3e8
cdq
idiv dword [ebp + 0x30]
jmp 0x4dc3c4
cmp eax, 6
jne 0x4dc2c1
mov ecx, dword [ebp + 0x30]
lea eax, [edi + ebx]
imul eax, dword [ebp + 4]
add ecx, dword [ebp + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 7
jne 0x4dc2f1
mov edx, dword [esp + 0x78]
imul edx, dword [ebp + 4]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x70]
imul ecx, dword [ebp + 4]
imul eax, edx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
jmp 0x4dc344
cmp eax, 8
jne 0x4dc31a
mov edx, dword [ebp + 0x2c]
sub ebx, edi
mov ecx, dword [ebp + 0x30]
add ecx, edx
lea eax, [edx + ebx]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 9
jne 0x4dc36a
imul edi, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x78]
imul ecx, dword [ebp + 4]
imul eax, edi, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [ebp]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x34]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0xa
jne 0x4dc393
mov edx, dword [ebp + 0x30]
sub edi, ebx
mov ecx, dword [ebp + 0x2c]
add ecx, edx
lea eax, [edx + edi]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0xb
jne 0x4dc3ea
mov eax, dword [ebp + 0x30]
sub eax, dword [esp + 0x78]
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x70]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov esi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov ebx, dword [ebp]
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x34]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0xc
jne 0x4dc415
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
add ecx, dword [ebp + 0x30]
sub eax, edi
sub eax, ebx
add eax, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0xd
jne 0x4dc447
mov esi, dword [ebp + 0x30]
mov eax, esi
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
imul esi, dword [ebp + 0x2c]
sub ecx, edi
imul eax, ecx
mov ebx, dword [ebp]
imul eax, dword [ebp + 4]
cdq
idiv esi
mov edx, dword [esp + 0x34]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0xe
jne 0x4dc472
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x30]
imul eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0xf
jne 0x4dc49d
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub eax, edi
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x2c]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0x10
jne 0x4dc4c5
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0x11
jne 0x4dc502
mov edx, dword [ebp + 0x2c]
mov eax, edx
mov esi, dword [ebp + 0x30]
sub eax, edi
mov ecx, esi
imul eax, eax
sub ecx, ebx
imul edx, edx
imul ecx, ecx
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [esp + 0x34]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0x12
jne 0x4dc51b
mov ecx, dword [ebp + 0x30]
mov eax, ecx
mov esi, dword [ebp + 0x2c]
sub eax, ebx
imul edi, edi
imul eax, eax
add eax, edi
jmp 0x4dc532
cmp eax, 0x13
jne 0x4dc551
mov esi, dword [ebp + 0x2c]
mov eax, esi
mov ecx, dword [ebp + 0x30]
sub eax, edi
imul ebx, ebx
imul eax, eax
add eax, ebx
imul eax, dword [ebp + 4]
imul esi, esi
imul ecx, ecx
mov ebx, dword [ebp]
cdq
add esi, ecx
idiv esi
mov edx, dword [esp + 0x34]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
cmp eax, 0x14
jne 0x4dc582
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
imul edi, edi
imul ebx, ebx
imul eax, eax
imul ecx, ecx
add edi, ebx
imul edi, dword [ebp + 4]
add ecx, eax
mov eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dc586
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4dc650
push edx
push dword [esp + 0x48]
call fcn.004dddaa
mov ecx, ebx
mov edx, eax
sar ecx, 0x18
movzx eax, cl
mov dword [esp + 0x2c], edx
mov dword [esp + 0x70], eax
test cl, cl
je 0x4dc654
mov eax, edx
movzx ebp, dl
sar eax, 8
movzx esi, al
mov eax, edx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, dword [esp + 0x70]
imul ecx
mov eax, dword [esp + 0x10]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x70]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x10]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x70]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
or ebx, eax
mov eax, dword [esp + 0x2c]
and eax, 0xff000000
or eax, ebx
mov dword [esp + 0x2c], eax
jmp 0x4dc654
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0xa8]
mov ebx, dword [ebx]
mov edx, dword [edx]
movzx eax, bl
mov dword [esp + 0xa8], eax
mov eax, ebx
sar eax, 8
movzx ebp, al
mov eax, ebx
sar eax, 0x10
movzx edi, al
mov eax, edx
sar eax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 8
movzx eax, al
add ecx, eax
sar ebx, 0x18
movzx eax, dl
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
mov eax, dword [esp + 0x2c]
sar eax, 0x18
mov ecx, edx
movzx eax, al
shr ecx, 1
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, ebp
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx esi, al
mov eax, dword [esp + 0x2c]
sar eax, 8
movzx eax, al
sub ecx, eax
mov eax, 0x80808081
imul ecx, esi
imul ecx
add edx, ecx
mov ecx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, dword [esp + 0x2c]
sar eax, 0x10
movzx eax, al
sub ecx, eax
shl ebp, 8
imul ecx, esi
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
movzx eax, bl
sub ecx, eax
shl edi, 0x10
mov eax, 0xff
or ebp, edi
sub eax, esi
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
mov ebx, dword [esp + 0xa8]
add ecx, edx
shl ecx, 0x18
mov eax, 0xff000000
sub eax, ecx
mov edi, dword [esp + 0x38]
or ebp, eax
mov ecx, ebx
mov eax, dword [esp + 0x2c]
movzx eax, al
sub ecx, eax
mov eax, 0x80808081
imul ecx, esi
mov esi, dword [esp + 0x44]
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x5c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x30]
sub ebx, eax
or ebp, ebx
mov ebx, dword [esp + 0x28]
mov dword [edx], ebp
inc esi
add edx, 4
add ecx, 4
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], esi
mov dword [esp + 0x5c], ecx
cmp esi, dword [esp + 0x3c]
jl 0x4dc151
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x7c]
inc edx
sub eax, dword [esp + 0x3c]
add eax, ecx
mov dword [esp + 0x34], edx
add ebp, eax
cmp edx, dword [esp + 0x58]
jl 0x4dc101
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebp, dword [esp + 0xa4]
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4dc7ef
push eax
push 0
call ebp
push eax
call ebx
push dword [esp + 0xd4]
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xcc]
push ebx
call edi
push dword [esp + 0xd8]
push ebx
call edi
push dword [esp + 0xcc]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [esp + 0xdc]
call esi
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret
mov esi, dword [esp + 0xa0]
xor ecx, ecx
mov edi, dword [esp + 0x48]
mov edx, 2
imul esi, edi
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
jne 0x4dc865
xor ebp, ebp
mov dword [esp + 0x1c], ebp
jmp 0x4dc87a
push ecx
push 8
call dword [esp + 0xac]
push eax
call dword [esp + 0x60]
mov ebp, eax
mov dword [esp + 0x1c], eax
lea ecx, [esi + esi]
mov edx, ebp
call fcn.0055d86a
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
imul ecx, edi
mov dword [esp + 0x70], ebx
add ecx, edx
add ecx, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
cmp ebx, dword [esp + 0x58]
jge 0x4dc949
mov edi, edi
mov eax, dword [esp + 0x7c]
cmp eax, esi
jge 0x4dc92c
mov edi, dword [esp + 0x3c]
mov esi, ebx
imul esi, dword [esp + 0xb4]
mov ebx, dword [esp + 0x50]
add esi, eax
shl esi, 2
sub edi, eax
mov eax, dword [esp + 0xc0]
cmp dword [esi + eax], 0
je 0x4dc90b
mov byte [ebp + ebx*2], 1
mov ecx, dword [esi + eax]
mov eax, ecx
sar eax, 0x10
movzx edx, al
mov eax, ecx
sar eax, 8
movzx eax, al
add edx, eax
movzx eax, cl
add edx, eax
mov eax, 0xaaaaaaab
mul edx
shr edx, 1
mov byte [ebp + ebx*2 + 1], dl
inc ebx
add esi, 4
sub edi, 1
jne 0x4dc8d2
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x50]
sub eax, esi
inc ebx
add eax, edi
mov dword [esp + 0x70], ebx
add ecx, eax
mov dword [esp + 0x50], ecx
cmp ebx, dword [esp + 0x58]
jl 0x4dc8b1
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x20]
mov ebx, 1
mov eax, dword [eax + 0x98]
cmp eax, ebx
jl 0x4dcbd4
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x18]
lea ebx, [ebx]
add esi, 2
dec edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x3c], esi
lea eax, [esi + ebp]
add eax, edx
cmp eax, edi
jle 0x4dc990
mov esi, edi
sub esi, ebp
sub esi, edx
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x58]
dec ecx
mov ebp, dword [esp + 0xac]
add eax, 2
mov dword [esp + 0x58], eax
add eax, ebp
add eax, ecx
mov dword [esp + 0x84], ecx
cmp eax, dword [esp + 0xa0]
jle 0x4dc9c8
mov eax, dword [esp + 0xa0]
sub eax, ebp
sub eax, ecx
mov dword [esp + 0x58], eax
jmp 0x4dc9cc
mov eax, dword [esp + 0x58]
add ecx, ebp
mov ebp, dword [esp + 0x18]
imul ecx, edi
add ecx, ebp
add ecx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x40], edx
cmp edx, eax
jge 0x4dcbb6
jmp 0x4dc9f1
mov eax, dword [esp + 0x7c]
mov ebp, eax
mov dword [esp + 0x24], ebp
cmp ebp, esi
jge 0x4dcb9d
mov edi, dword [esp + 0x3c]
lea eax, [ebp + 1]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
lea esi, [eax + ecx*2]
mov eax, dword [esp + 0x3c]
sub eax, ebp
add ecx, eax
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x2c]
jmp 0x4dca31
movzx eax, byte [esi]
cmp eax, ebx
jne 0x4dcb6f
cmp edx, dword [esp + 0x34]
jle 0x4dcaaa
cmp ebp, dword [esp + 0x7c]
jle 0x4dca64
mov eax, dword [esp + 0x48]
mov ecx, esi
add eax, eax
sub ecx, eax
cmp byte [ecx - 2], 0
jne 0x4dca64
lea eax, [ebx + 1]
mov byte [ecx - 2], al
mov al, byte [esi + 1]
mov byte [ecx - 1], al
mov eax, dword [esp + 0x48]
mov edx, esi
add eax, eax
sub edx, eax
mov al, byte [edx]
test al, al
je 0x4dca82
lea ecx, [ebx + 1]
movzx eax, al
cmp eax, ecx
je 0x4dca82
mov cl, bl
jmp 0x4dca8f
mov cl, bl
lea eax, [ecx + 1]
mov byte [edx], al
mov al, byte [esi + 1]
mov byte [edx + 1], al
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x2c], eax
jge 0x4dcaaa
cmp byte [edx + 2], 0
jne 0x4dcaaa
inc cl
mov byte [edx + 2], cl
mov al, byte [esi + 1]
mov byte [edx + 3], al
lea ecx, [esi + 1]
cmp ebp, dword [esp + 0x7c]
jle 0x4dcac1
cmp byte [ecx - 3], 0
lea edi, [ecx - 3]
jne 0x4dcac1
lea ebp, [ebx + 1]
jmp 0x4dcacf
movzx eax, byte [ecx - 3]
lea edi, [ecx - 3]
lea ebp, [ebx + 1]
cmp eax, ebp
jne 0x4dcad9
lea eax, [ebx + 1]
mov byte [edi], al
mov al, byte [ecx]
mov byte [edi + 1], al
mov eax, dword [esp + 0x3c]
mov dl, bl
cmp dword [esp + 0x2c], eax
jge 0x4dcafe
mov al, byte [edi + 4]
test al, al
je 0x4dcaf3
movzx eax, al
cmp eax, ebp
jne 0x4dcafe
lea eax, [edx + 1]
mov byte [edi + 4], al
mov al, byte [ecx]
mov byte [edi + 5], al
mov eax, dword [esp + 0x40]
inc eax
cmp eax, dword [esp + 0x58]
jge 0x4dcb63
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x48]
cmp dword [esp + 0x24], eax
jle 0x4dcb2b
cmp byte [esi + edi*2 - 2], 0
jne 0x4dcb2b
lea eax, [edx + 1]
mov byte [esi + edi*2 - 2], al
mov al, byte [ecx]
mov byte [esi + edi*2 - 1], al
mov al, byte [esi + edi*2]
test al, al
je 0x4dcb3d
movzx eax, al
cmp eax, ebp
je 0x4dcb3d
inc dl
jmp 0x4dcb48
inc dl
mov byte [esi + edi*2], dl
mov al, byte [ecx]
mov byte [esi + edi*2 + 1], al
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x2c], eax
jge 0x4dcb63
cmp byte [esi + edi*2 + 2], 0
jne 0x4dcb63
mov byte [esi + edi*2 + 2], dl
mov al, byte [ecx]
mov byte [esi + edi*2 + 3], al
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
inc ecx
inc eax
mov dword [esp + 0x2c], ecx
add esi, 2
mov dword [esp + 0x24], eax
mov ebp, eax
cmp eax, edi
jl 0x4dca31
mov ecx, dword [esp + 0xa8]
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x48]
sub eax, esi
inc edx
add eax, edi
mov dword [esp + 0x40], edx
add ecx, eax
cmp edx, dword [esp + 0x58]
jl 0x4dc9f1
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ebx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x64]
mov eax, dword [eax + 0x98]
cmp ebx, eax
jle 0x4dc971
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
jne 0x4dcbee
xor ebp, ebp
mov dword [esp + 0x24], ebp
jmp 0x4dcc03
push ecx
push 8
call dword [esp + 0xac]
push eax
call dword [esp + 0x60]
mov ebp, eax
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x20]
xor ebx, ebx
xor esi, esi
cmp dword [edx + 0x9c], ebx
jle 0x4dcc72
mov ecx, dword [esp + 0xbc]
add ecx, ebx
inc ebx
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x80]
lea edi, [ecx + eax*4]
mov eax, dword [esp + 0x58]
mov ecx, dword [edi + 0xc]
sub ecx, dword [edx + 0x98]
add eax, ecx
push eax
mov eax, dword [esp + 0x40]
add eax, ecx
mov ecx, edi
push eax
push 0
push 0
call fcn.004de229
xor eax, eax
cmp dword [edi + 0xc], eax
jle 0x4dcc62
mov dword [ebp + esi*4], edi
inc eax
inc esi
cmp eax, dword [edi + 0xc]
jl 0x4dcc57
mov edx, dword [esp + 0x20]
cmp ebx, dword [edx + 0x9c]
jl 0x4dcc13
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0xac]
add edx, dword [esp + 0x84]
mov esi, dword [esp + 0x34]
imul edx, edi
add edx, dword [esp + 0x18]
add edx, dword [esp + 0x64]
mov dword [esp + 0xa0], edx
cmp esi, dword [esp + 0x58]
jge 0x4ddca7
mov ebx, dword [esp + 0x3c]
jmp 0x4dccaa
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x7c]
mov ecx, eax
mov dword [esp + 0x18], eax
cmp ecx, ebx
jge 0x4ddc85
jmp 0x4dccc5
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0xb8]
lea eax, [eax + edx*4]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x1c]
mov al, byte [eax + edx*2]
cmp al, 1
jbe 0x4dd1c3
movzx eax, al
mov ebx, ecx
mov edi, esi
mov ebp, dword [ebp + eax*4 - 8]
mov edx, dword [ebp + 0x24]
sub ebx, edx
sub edi, dword [ebp + 0x28]
sub ebx, eax
sub edi, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x54], edi
test ebx, ebx
jns 0x4dcd0d
xor ebx, ebx
mov dword [esp + 0x40], ebx
jmp 0x4dcd35
mov eax, dword [ebp + 0x2c]
cmp ebx, eax
jle 0x4dcd1c
mov ebx, eax
mov dword [esp + 0x40], ebx
jmp 0x4dcd35
test edi, edi
jns 0x4dcd28
xor edi, edi
mov dword [esp + 0x54], edi
jmp 0x4dcd35
mov eax, dword [ebp + 0x30]
cmp edi, eax
jle 0x4dcd35
mov edi, eax
mov dword [esp + 0x54], eax
mov esi, dword [ebp]
mov dword [esp + 0x10], 0
test esi, esi
je 0x4dd632
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4dcd5a
mov ebx, dword [esi]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 1
jne 0x4dcd78
mov eax, dword [ebp + 4]
imul eax, edi
cdq
idiv dword [ebp + 0x30]
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 2
jne 0x4dcd99
mov eax, dword [ebp + 0x30]
sub eax, edi
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x30]
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 3
jne 0x4dcdb7
mov eax, dword [ebp + 4]
imul eax, ebx
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 4
jne 0x4dcdd8
mov eax, dword [ebp + 0x2c]
sub eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 5
jne 0x4dce03
mov ecx, dword [ebp + 4]
mov eax, ecx
imul eax, ebx
imul ecx, edi
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov esi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
jmp 0x4dcf01
cmp eax, 6
jne 0x4dce0d
lea eax, [ebx + edi]
jmp 0x4dce53
cmp eax, 7
jne 0x4dce47
mov eax, dword [ebp + 4]
imul eax, edi
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x40]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
add edi, eax
mov eax, 0x10624dd3
imul edi
jmp 0x4dcf0a
cmp eax, 8
jne 0x4dce6f
mov eax, dword [ebp + 0x2c]
sub eax, ebx
add eax, edi
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
add ecx, dword [ebp + 0x2c]
cdq
idiv ecx
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 9
jne 0x4dcea8
mov eax, dword [ebp + 4]
imul eax, dword [esp + 0x40]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x54]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
add edi, eax
mov eax, 0x10624dd3
imul edi
jmp 0x4dcf0a
cmp eax, 0xa
jne 0x4dced0
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, edi
add ecx, dword [ebp + 0x30]
add eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0xb
jne 0x4dcf26
mov eax, dword [ebp + 0x30]
sub eax, dword [esp + 0x54]
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x40]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov esi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
add esi, eax
mov eax, 0x10624dd3
imul esi
mov ebx, dword [ebp]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0xc
jne 0x4dcf50
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
add ecx, dword [ebp + 0x30]
sub eax, ebx
sub eax, edi
add eax, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0xd
jne 0x4dcf81
mov esi, dword [ebp + 0x30]
mov eax, esi
mov ecx, dword [ebp + 0x2c]
sub eax, edi
imul esi, dword [ebp + 0x2c]
sub ecx, ebx
imul eax, ecx
mov ebx, dword [ebp]
imul eax, dword [ebp + 4]
cdq
idiv esi
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0xe
jne 0x4dcfab
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, edi
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x30]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0xf
jne 0x4dcfd5
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub eax, ebx
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
cdq
idiv ecx
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0x10
jne 0x4dcffc
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x2c]
imul eax, ebx
imul eax, edi
cdq
idiv ecx
mov edx, dword [ebp + 0x24]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0x11
jne 0x4dd038
mov edx, dword [ebp + 0x2c]
mov eax, edx
mov esi, dword [ebp + 0x30]
sub eax, ebx
mov ecx, esi
imul eax, eax
sub ecx, edi
imul edx, edx
imul ecx, ecx
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0x12
jne 0x4dd06f
mov edx, dword [ebp + 0x30]
mov ecx, ebx
mov esi, dword [ebp + 0x2c]
mov eax, edx
sub eax, edi
imul ecx, ebx
imul eax, eax
imul edx, edx
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0x13
jne 0x4dd0a6
mov esi, dword [ebp + 0x2c]
mov eax, edi
mov edx, dword [ebp + 0x30]
mov ecx, esi
sub ecx, ebx
imul eax, edi
imul ecx, ecx
imul edx, edx
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
cmp eax, 0x14
jne 0x4dd0db
mov edx, dword [ebp + 0x30]
mov eax, ebx
mov esi, dword [ebp + 0x2c]
mov ecx, edi
imul eax, ebx
imul ecx, edi
imul edx, edx
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dd0df
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4dd634
mov eax, dword [esp + 0x54]
add eax, dword [ebp + 0x28]
push eax
mov eax, dword [esp + 0x44]
add eax, edx
push eax
call fcn.004dddaa
mov ecx, ebx
mov edx, eax
sar ecx, 0x18
movzx eax, cl
mov dword [esp + 0x50], edx
mov dword [esp + 0x80], eax
test cl, cl
je 0x4dd638
mov eax, edx
movzx ebp, dl
sar eax, 8
movzx esi, al
mov eax, edx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, dword [esp + 0x80]
imul ecx
mov eax, dword [esp + 0x10]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x80]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x10]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x80]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x50]
add eax, ebp
and edx, 0xff000000
or ebx, eax
or edx, ebx
mov dword [esp + 0x50], edx
jmp 0x4dd638
jne 0x4ddc64
mov ebx, dword [esp + 0x38]
mov edi, ecx
mov eax, dword [esp + 0x20]
mov ebp, esi
mov ecx, ebx
mov edx, dword [ebx + 0x24]
sub edi, edx
mov eax, dword [eax + 0x98]
sub edi, eax
sub ebp, dword [ebx + 0x28]
sub ebp, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x54], edi
test edi, edi
jns 0x4dd1fd
xor edi, edi
mov dword [esp + 0x54], edi
jmp 0x4dd21d
mov eax, dword [ecx + 0x2c]
cmp edi, eax
jle 0x4dd20c
mov edi, eax
mov dword [esp + 0x54], edi
jmp 0x4dd21d
test ebp, ebp
jns 0x4dd214
xor ebp, ebp
jmp 0x4dd21d
mov eax, dword [ecx + 0x30]
cmp ebp, eax
jle 0x4dd21d
mov ebp, eax
mov esi, dword [ecx]
xor ebx, ebx
mov dword [esp + 0x14], ebx
test esi, esi
je 0x4dd632
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4dd23b
mov ebx, dword [esi]
jmp 0x4dd550
cmp eax, 1
jne 0x4dd252
mov eax, dword [ecx + 4]
imul eax, ebp
cdq
idiv dword [ecx + 0x30]
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 2
jne 0x4dd272
mov edi, dword [esp + 0x38]
mov eax, dword [ecx + 0x30]
sub eax, ebp
imul eax, dword [edi + 4]
cdq
idiv dword [ecx + 0x30]
mov ecx, edi
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 3
jne 0x4dd289
mov eax, dword [ecx + 4]
imul eax, edi
cdq
idiv dword [ecx + 0x2c]
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 4
jne 0x4dd2a9
mov eax, dword [ecx + 0x2c]
sub eax, edi
mov edi, dword [esp + 0x38]
imul eax, dword [edi + 4]
cdq
idiv dword [ecx + 0x2c]
mov ecx, edi
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 5
jne 0x4dd2ed
mov ecx, dword [ecx + 4]
mov eax, ecx
imul eax, edi
mov edi, dword [esp + 0x38]
imul ecx, ebp
imul eax, eax, 0x3e8
cdq
idiv dword [edi + 0x2c]
mov esi, eax
imul eax, ecx, 0x3e8
mov ecx, edi
cdq
idiv dword [ecx + 0x30]
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4dd547
cmp eax, 6
jne 0x4dd310
lea eax, [edi + ebp]
mov edi, dword [esp + 0x38]
imul eax, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
add ecx, dword [edi + 0x2c]
cdq
idiv ecx
mov ecx, edi
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 7
jne 0x4dd35a
mov esi, dword [ecx + 4]
mov eax, esi
mov ebx, dword [ecx + 0x2c]
imul eax, ebp
imul eax, eax, 0x3e8
cdq
idiv dword [ecx + 0x30]
mov ecx, ebx
sub ecx, dword [esp + 0x54]
mov edi, eax
imul ecx, esi
imul eax, ecx, 0x3e8
mov ecx, dword [esp + 0x38]
cdq
idiv ebx
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4dd547
cmp eax, 8
jne 0x4dd380
mov edx, dword [ecx + 0x2c]
mov eax, edx
sub eax, edi
add eax, ebp
imul eax, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
add ecx, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 9
jne 0x4dd3a0
mov esi, dword [ecx + 4]
mov eax, edi
mov ebx, dword [ecx + 0x30]
imul eax, esi
imul eax, eax, 0x3e8
cdq
idiv dword [ecx + 0x2c]
mov ecx, ebx
sub ecx, ebp
jmp 0x4dd330
cmp eax, 0xa
jne 0x4dd3c6
mov edx, dword [ecx + 0x30]
mov eax, edi
sub eax, ebp
add eax, edx
imul eax, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
add ecx, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 0xb
jne 0x4dd413
mov eax, dword [ecx + 0x30]
mov edi, dword [ecx + 4]
sub eax, ebp
imul eax, edi
mov ebx, dword [ecx + 0x2c]
imul eax, eax, 0x3e8
cdq
idiv dword [ecx + 0x30]
mov ecx, ebx
sub ecx, dword [esp + 0x54]
mov esi, eax
imul ecx, edi
imul eax, ecx, 0x3e8
mov ecx, dword [esp + 0x38]
cdq
idiv ebx
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4dd547
cmp eax, 0xc
jne 0x4dd43d
mov edx, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x2c]
mov eax, ecx
sub eax, edi
add ecx, edx
mov edi, dword [esp + 0x38]
sub eax, ebp
add eax, edx
imul eax, dword [edi + 4]
cdq
idiv ecx
mov ecx, edi
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 0xd
jne 0x4dd45b
mov esi, dword [ecx + 0x30]
mov eax, esi
mov edx, dword [ecx + 0x2c]
sub eax, ebp
mov ecx, edx
sub ecx, edi
imul eax, ecx
imul esi, edx
jmp 0x4dd53c
cmp eax, 0xe
jne 0x4dd483
mov edx, dword [ecx + 0x30]
mov eax, edx
sub eax, ebp
imul eax, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
imul ecx, edx
imul eax, edi
cdq
idiv ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 0xf
jne 0x4dd4ab
mov edx, dword [ecx + 0x2c]
mov eax, edx
sub eax, edi
imul eax, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
imul ecx, edx
imul eax, ebp
cdq
idiv ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 0x10
jne 0x4dd4d0
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + 0x30]
imul ecx, dword [eax + 0x2c]
mov eax, dword [eax + 4]
imul eax, edi
imul eax, ebp
cdq
idiv ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esi + eax*4]
jmp 0x4dd54c
cmp eax, 0x11
jne 0x4dd4eb
mov edx, dword [ecx + 0x2c]
mov eax, edx
mov esi, dword [ecx + 0x30]
sub eax, edi
mov ecx, esi
imul eax, eax
sub ecx, ebp
imul ecx, ecx
jmp 0x4dd532
cmp eax, 0x12
jne 0x4dd504
mov edx, dword [ecx + 0x30]
mov eax, edx
mov esi, dword [ecx + 0x2c]
sub eax, ebp
mov ecx, edi
imul eax, eax
imul ecx, edi
jmp 0x4dd532
cmp eax, 0x13
jne 0x4dd51d
mov esi, dword [ecx + 0x30]
mov eax, ebp
mov edx, dword [ecx + 0x2c]
mov ecx, edx
sub ecx, edi
imul eax, ebp
imul ecx, ecx
jmp 0x4dd532
cmp eax, 0x14
jne 0x4dd554
mov edx, dword [ecx + 0x30]
mov eax, edi
mov esi, dword [ecx + 0x2c]
mov ecx, ebp
imul eax, edi
imul ecx, ebp
imul edx, edx
add eax, ecx
imul esi, esi
add esi, edx
mov ecx, dword [esp + 0x38]
imul eax, dword [ecx + 4]
cdq
idiv esi
mov ebx, dword [ecx]
mov ebx, dword [ebx + eax*4]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x4dd634
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0x28]
add eax, ebp
push eax
mov eax, dword [esp + 0x58]
add eax, edx
push eax
call fcn.004dddaa
mov ecx, eax
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x50], ecx
mov dword [esp + 0xbc], edx
test al, al
je 0x4dd638
mov eax, ecx
movzx ebp, cl
sar eax, 8
movzx esi, al
mov eax, ecx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x14]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0xbc]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x14]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0xbc]
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x50]
sar edx, 7
and ecx, 0xff000000
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
or ebx, eax
or ecx, ebx
mov dword [esp + 0x50], ecx
jmp 0x4dd638
xor ebx, ebx
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x50]
mov ebx, eax
mov edi, dword [esp + 0xa0]
mov ecx, eax
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x70]
sar eax, 0x10
mov dword [esp + 0xa8], eax
mov al, byte [ebp + edi*2]
mov edx, dword [edx]
sar ebx, 0x18
sar ecx, 8
mov dword [esp + 0x40], ebx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x54], edx
cmp al, 1
jne 0x4ddb35
movzx ecx, byte [ebp + edi*2 + 1]
mov eax, ebx
movzx eax, al
imul ecx, eax
mov eax, 0x80808081
mul ecx
shr edx, 7
cmp byte [ebp + edi*2 + 1], 0xff
mov byte [esp + 0x40], dl
jae 0x4ddb74
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov ebx, edx
mov edi, dword [esp + 0x34]
mov dword [esp + 0x10], 0
mov ebp, dword [ebp]
sub ebx, dword [ebp + 0x24]
sub edi, dword [ebp + 0x28]
mov esi, dword [ebp]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x80], edi
test esi, esi
jne 0x4dd6da
xor edx, edx
jmp 0x4ddb78
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4dd6ec
mov ebx, dword [esi]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 1
jne 0x4dd70b
mov eax, dword [ebp + 4]
imul eax, edi
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 2
jne 0x4dd72d
mov eax, dword [ebp + 0x30]
sub eax, edi
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 3
jne 0x4dd74c
mov eax, dword [ebp + 4]
imul eax, ebx
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 4
jne 0x4dd76e
mov eax, dword [ebp + 0x2c]
sub eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 5
jne 0x4dd78d
mov ecx, dword [ebp + 4]
mov eax, ecx
imul eax, ebx
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
imul ecx, edi
jmp 0x4dd8b1
cmp eax, 6
jne 0x4dd7b2
mov ecx, dword [ebp + 0x30]
lea eax, [ebx + edi]
imul eax, dword [ebp + 4]
add ecx, dword [ebp + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 7
jne 0x4dd7e0
mov eax, dword [ebp + 4]
imul eax, edi
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x78]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
jmp 0x4dd83a
cmp eax, 8
jne 0x4dd809
mov edx, dword [ebp + 0x2c]
sub edi, ebx
mov ecx, dword [ebp + 0x30]
add ecx, edx
lea eax, [edx + edi]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 9
jne 0x4dd860
mov eax, dword [ebp + 4]
imul eax, dword [esp + 0x78]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x80]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [ebp]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0xa
jne 0x4dd889
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, edi
add ecx, dword [ebp + 0x30]
add eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0xb
jne 0x4dd8e3
mov eax, dword [ebp + 0x2c]
sub eax, dword [esp + 0x78]
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x80]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
imul ecx, dword [ebp + 4]
mov esi, eax
mov ebx, dword [ebp]
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0xc
jne 0x4dd90e
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
sub eax, edi
add eax, ecx
add ecx, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0xd
jne 0x4dd940
mov esi, dword [ebp + 0x30]
mov ecx, esi
mov eax, dword [ebp + 0x2c]
sub ecx, edi
imul esi, dword [ebp + 0x2c]
sub eax, ebx
imul eax, ecx
mov ebx, dword [ebp]
imul eax, dword [ebp + 4]
cdq
idiv esi
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0xe
jne 0x4dd96b
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, edi
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x30]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0xf
jne 0x4dd996
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub eax, ebx
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0x10
jne 0x4dd9be
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x2c]
imul eax, ebx
imul eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0x11
jne 0x4dd9f8
mov edx, dword [ebp + 0x2c]
mov ecx, edx
mov esi, dword [ebp + 0x30]
sub ecx, ebx
mov eax, esi
imul ecx, ecx
sub eax, edi
imul edx, edx
imul eax, eax
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0x12
jne 0x4dda11
mov esi, dword [ebp + 0x30]
mov eax, esi
mov ecx, dword [ebp + 0x2c]
sub eax, edi
imul eax, eax
imul ebx, ebx
add eax, ebx
jmp 0x4dda28
cmp eax, 0x13
jne 0x4dda47
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
sub eax, ebx
imul edi, edi
imul eax, eax
add eax, edi
mov esi, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
imul esi, esi
imul ecx, ecx
mov ebx, dword [ebp]
cdq
add esi, ecx
idiv esi
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4dda5e
cmp eax, 0x14
jne 0x4dda5a
mov ecx, dword [ebp + 0x2c]
imul ebx, ebx
imul edi, edi
lea eax, [edi + ebx]
jmp 0x4dda25
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4ddb31
push dword [esp + 0x34]
push edx
call fcn.004dddaa
mov ecx, ebx
mov edx, eax
sar ecx, 0x18
movzx eax, cl
mov dword [esp + 0x54], edx
mov dword [esp + 0x80], eax
test cl, cl
je 0x4ddb78
mov eax, edx
movzx ebp, dl
sar eax, 8
movzx esi, al
mov eax, edx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, dword [esp + 0x80]
imul ecx
mov eax, dword [esp + 0x10]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x80]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x10]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x80]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x54]
add eax, ebp
and edx, 0xff000000
or ebx, eax
or edx, ebx
jmp 0x4ddb78
mov edx, ebx
jmp 0x4ddb78
mov ecx, dword [esp + 0x20]
movzx eax, al
mov esi, dword [ecx + 0x98]
lea ecx, [esi + 1]
cmp eax, ecx
jne 0x4ddb78
movzx ecx, byte [ebp + edi*2 + 1]
movzx eax, bl
cmp esi, 1
jne 0x4ddb5d
shr ecx, 1
sub ecx, 0xffffff80
jmp 0x4ddb63
shr ecx, 2
add ecx, 0x40
imul ecx, eax
mov eax, 0x80808081
mul ecx
shr edx, 7
mov byte [esp + 0x40], dl
mov edx, dword [esp + 0x54]
movzx eax, dl
mov ecx, 0xff
mov dword [esp + 0xc4], eax
mov edi, 0xff000000
mov eax, edx
sar eax, 8
movzx esi, al
mov eax, edx
sar eax, 0x10
movzx ebx, al
mov eax, dword [esp + 0x40]
movzx ebp, al
sar edx, 0x18
movzx eax, dl
sub ecx, eax
mov eax, 0xff
sub eax, ebp
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
shl eax, 0x18
sub edi, eax
mov eax, dword [esp + 0xbc]
movzx eax, al
sub ecx, eax
mov eax, 0x80808081
imul ecx, ebp
imul ecx
add edx, ecx
mov ecx, ebx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, dword [esp + 0xa8]
movzx eax, al
sub ecx, eax
shl esi, 8
imul ecx, ebp
mov eax, 0x80808081
or edi, esi
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
shl ebx, 0x10
or edi, ebx
mov ebx, dword [esp + 0x50]
movzx eax, bl
mov ebx, dword [esp + 0xc4]
mov ecx, ebx
sub ecx, eax
mov eax, 0x80808081
imul ecx, ebp
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x18]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0xa0]
sub ebx, eax
mov eax, dword [esp + 0x70]
or edi, ebx
mov ebx, dword [esp + 0x3c]
mov dword [eax], edi
mov esi, dword [esp + 0x34]
inc ecx
inc edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xa0], edx
cmp ecx, ebx
jl 0x4dccc1
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x48]
sub eax, ebx
add eax, edi
add edx, eax
mov eax, dword [esp + 0x34]
inc eax
mov dword [esp + 0xa0], edx
mov esi, eax
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x58]
jl 0x4dcca6
push dword [esp + 0x24]
mov ebp, dword [esp + 0xa8]
push 0
call ebp
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call ebx
push dword [esp + 0x1c]
push 0
call ebp
push eax
call ebx
jmp 0x4dc7df