Function at 0x4d6fa2
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x640
push esi
push edi
push 3
pop esi
mov edi, edx
mov dword [esp + 0xa8], ecx
push esi
lea ecx, [esp + 0x2a8]
mov dword [esp + 0x50], edi
call fcn.00428b0d
xor eax, eax
mov dword [esp + 8], 0xfffffffb
mov dword [esp + 8], eax
jmp 0x4d6ff3
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x2a4]
mov dword [ecx + edx*4], 0x77862fd4
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x4d6fdd
push 0xffffffffffffffff
pop ecx
mov dword [esp + 8], eax
cmp dword [esp + 8], 2
push 4
mov dword [esp + 0x30], 1
pop esi
jg 0x4d73c7
jmp 0x4d701b
or ecx, 0xffffffff
mov dword [esp + 0x1c], 0xa5c62e08
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x3c], 0x1f89
cmp dword [esp + 0x3c], 0x1253
jge 0x4d71c7
lea edx, [esp + 0x400]
mov dword [esp + 0x414], 0xf
mov ecx, 0xad3d60
mov dword [esp + 0x410], eax
mov byte [esp + 0x400], al
call fcn.00476c77
lea eax, [esp + 0x130]
mov ecx, 0xad3d60
push eax
call fcn.00428021
mov esi, dword [esp + 0x130]
lea ecx, [esp + 0x3a4]
push esi
call fcn.00428ea7
test esi, esi
jle 0x4d70b1
mov edi, dword [esp + 0x3a4]
mov edx, edi
mov ecx, 0xad3d60
call fcn.00476c77
add edi, 0x18
dec esi
jne 0x4d7098
mov esi, dword [esp + 0x130]
and dword [esp + 0x1c], 0
xor al, al
mov byte [esp + 0x23], al
test esi, esi
jle 0x4d7189
mov edx, dword [esp + 0x3a4]
xor edi, edi
mov dword [esp + 0x24], edx
inc edi
test al, al
jne 0x4d7189
mov ecx, dword [esp + 0x3a4]
and dword [esp + 0x28], 0
mov dword [esp + 0x18], ecx
push ecx
lea ecx, [esp + 0x5c8]
call fcn.0042f6f9
cmp dword [esp + 0x418], 0x10
lea eax, [esp + 0x404]
pop ecx
push dword [esp + 0x410]
cmovae eax, dword [esp + 0x404]
lea ecx, [esp + 0x5c8]
push 0
push eax
call fcn.0042a050
or ecx, 0xffffffff
cmp eax, ecx
lea ecx, [esp + 0x5c4]
push 0
jne 0x4d7159
push edi
call fcn.0042a139
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
inc eax
mov edx, dword [esp + 0x24]
add ecx, 0x18
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
cmp eax, esi
jl 0x4d70ea
jmp 0x4d7169
xor eax, eax
inc eax
push eax
mov byte [esp + 0x2b], al
call fcn.0042a139
xor edi, edi
inc edi
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
inc eax
add edx, 0x18
mov dword [esp + 0x1c], eax
cmp eax, esi
mov dword [esp + 0x24], edx
mov al, byte [esp + 0x23]
jl 0x4d70d2
test al, al
mov edx, 0xac22b8
mov eax, 0xac22bc
mov ecx, 0xad3cb8
cmove edx, eax
call fcn.0042f7f6
push eax
call fcn.0042f9e1
pop ecx
lea ecx, [esp + 0x3a4]
call fcn.0042aa38
push 0
push 1
lea ecx, [esp + 0x408]
call fcn.0042a139
xor eax, eax
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x2a4]
cmp dword [ecx + edx*4], eax
jne 0x4d73c0
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 2
jg 0x4d73b1
mov esi, dword [esp + 0x2a4]
mov dword [esp + 0x14], esi
mov dword [esp + 0x3c], 0x2188
cmp dword [esp + 0x3c], 0x1371
jge 0x4d72f0
mov dword [esp + 0x134], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x100], eax
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x158]
push eax
lea eax, [esp + 0x13c]
push eax
push 0xac2644
call fcn.004fad78
mov eax, dword [esp + 0x110]
add esp, 0x10
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
push 4
pop ecx
mov dword [esp + 0x24], ecx
cmp eax, ecx
jle 0x4d72d7
lea esi, [eax - 4]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x154]
mov edx, esi
call fcn.004d6f63
mov ecx, dword [esp + 0x134]
mov esi, edx
mov edx, dword [esp + 0x24]
mov edi, eax
call fcn.004d6f63
push edx
push eax
push esi
push edi
call fcn.004ff5a0
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], eax
dec esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], esi
cmp edx, dword [esp + 0x100]
jl 0x4d7277
mov esi, dword [esp + 0x14]
jmp 0x4d72df
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
push ecx
push 0xac2f18
call fcn.004fb3a8
add esp, 0xc
xor eax, eax
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], 0xfffffffd
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2a4]
mov esi, dword [esi + 8]
push 0
mov dword [ecx + edx*4], esi
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
neg edx
sbb edx, edx
neg edx
cmp edx, ecx
pop edx
setl dl
neg edx
neg edx
push 0
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, 0xaf5bfb66
sete cl
xor edx, edx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x28]
setge dl
mov dword [esp + 0x40], edx
xor edx, edx
cmp dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x28]
setl dl
imul edx, edx, 0xfff8
cmp edx, ecx
pop ecx
setge cl
xor edx, edx
cmp edx, ecx
sbb ecx, ecx
neg ecx
imul ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x24]
jg 0x4d7398
cmp dword [esp + 8], eax
je 0x4d7398
xor ecx, ecx
inc ecx
jmp 0x4d739a
mov ecx, eax
mov esi, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jle 0x4d71f5
inc dword [esp + 8]
cmp dword [esp + 8], 2
jle 0x4d7018
mov edi, dword [esp + 0x4c]
push 4
pop esi
lea ecx, [esp + 0x2a4]
call fcn.0042a773
mov ecx, dword [0xcfedc0]
xor eax, eax
inc eax
test al, cl
jne 0x4d7465
or ecx, eax
xor eax, eax
push eax
push eax
mov dword [0xcfedc0], ecx
mov dword [0xcfeda0], eax
mov dword [0xcfeda4], eax
call fcn.0042f5ea
mov ecx, eax
mov dword [0xcfedbc], 0x3f800000
mov dword [0xcfeda0], ecx
xor eax, eax
mov dword [esp + 0x300], ecx
lea ecx, [esp + 0x300]
push ecx
push 0x10
push eax
mov dword [0xcfeda8], eax
mov ecx, 0xcfeda8
mov dword [0xcfedb0], eax
mov dword [0xcfedac], eax
lea eax, [esp + 0x2fc]
push eax
call fcn.0042f153
push 0x5186e5
mov dword [0xcfedb4], 7
mov dword [0xcfedb8], 8
call fcn.004fb37e
pop ecx
mov dword [esp + 8], esi
mov dword [esp + 0x3c], 0x9ea9831
mov dword [esp + 8], 0
cmp dword [esp + 8], 0xffffffe5
je 0x4d7591
mov edi, 0xac22bc
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x3c], 0x156f
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x23], 0
cmp byte [esp + 0x23], 0
je 0x4d757e
mov dword [esp + 0x3c], 0x17d1
cmp dword [esp + 0x3c], 0xee5
jge 0x4d7574
lea eax, [esp + 0x428]
push eax
lea eax, [esp + 0x22c]
push eax
lea eax, [esp + 0x538]
push eax
lea eax, [esp + 0x43c]
push eax
lea eax, [esp + 0x448]
push eax
push 0xac2cd8
call fcn.004fad78
mov esi, dword [esp + 0x548]
add esp, 0x18
mov byte [esp + 0x23], 0
mov eax, esi
cdq
cmp edx, dword [esp + 0x22c]
jg 0x4d7560
jl 0x4d751b
cmp eax, dword [esp + 0x228]
ja 0x4d7560
push dword [esp + 0x42c]
push dword [esp + 0x42c]
push edx
push eax
call fcn.004ff5a0
cmp dword [esp + 0x43c], edx
jg 0x4d7558
jl 0x4d7544
cmp dword [esp + 0x438], eax
ja 0x4d7558
cmp edx, dword [esp + 0x434]
jl 0x4d755b
jg 0x4d7558
cmp eax, dword [esp + 0x430]
jbe 0x4d755b
inc esi
jmp 0x4d7504
mov byte [esp + 0x23], 1
cmp byte [esp + 0x23], 0
mov eax, 0xac22b8
cmove eax, edi
push eax
call fcn.004fb4f7
pop ecx
push 0
push 0
call dword [0xd00050]
dec dword [esp + 8]
cmp dword [esp + 8], 0xffffffe5
jne 0x4d7489
mov edi, dword [esp + 0x4c]
imul eax, dword [esp + 0xa8], 0x2710
add eax, edi
mov dword [esp + 0x150], eax
mov dword [esp + 0x10], 0x24ec2e0c
mov dword [esp + 0x3c], 0x185b
cmp dword [esp + 0x3c], 0xfd6
jge 0x4d7614
lea eax, [esp + 0x160]
push eax
push 0xac2248
call fcn.004fad78
pop ecx
xor eax, eax
xor edi, edi
pop ecx
mov ecx, dword [esp + 0x160]
inc eax
mov esi, eax
cmp ecx, eax
jle 0x4d7609
lea eax, [esi + edi]
cdq
idiv ecx
mov edi, edx
lea eax, [edi + 1]
push eax
push 0xac232c
call fcn.004fb3a8
pop ecx
pop ecx
mov ecx, dword [esp + 0x160]
inc esi
cmp esi, ecx
jl 0x4d75e5
push 0xac2348
call fcn.004fb3a8
pop ecx
push 3
pop edi
push edi
lea ecx, [esp + 0x4a4]
call fcn.00428b0d
xor eax, eax
mov dword [esp + 8], eax
jmp 0x4d7642
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x4a0]
mov dword [ecx + edx*4], 0xfffffffa
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x4d762c
mov dword [esp + 0x10], eax
jmp 0x4d765e
mov dword [esp + 0x28], 0xfffffff9
inc dword [esp + 0x28]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe3
jle 0x4d764e
mov dword [esp + 0x10], eax
jmp 0x4d7681
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x4a0]
mov dword [eax + ecx*4], 0xcb4c23af
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4d766b
lea ecx, [esp + 0x4a0]
call fcn.0042a773
lea eax, [esp + 0x150]
push eax
call fcn.004db9f2
push 1
lea ecx, [esp + 0x3c0]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
call fcn.00428b0d
mov dword [esp + 0x10], 0x56f9b2cf
xor eax, eax
xor esi, esi
mov dword [esp + 0x3c], 0xfffe
mov dword [esp + 8], eax
inc esi
jmp 0x4d76e5
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x3bc]
mov dword [ecx + edx*4], 0xe0bcd8c4
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x4d76cf
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], eax
jl 0x4d7713
mov byte [esp + 0x23], al
cmp byte [esp + 0x23], 0
je 0x4d770d
push eax
push eax
push eax
push eax
push eax
call dword [0xd00058]
xor eax, eax
dec dword [esp + 0x10]
jns 0x4d76f5
mov dword [esp + 0x10], 0x17
cmp dword [esp + 0x10], 9
je 0x4d798d
mov dword [esp + 0x24], 0xad9b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x3bc]
mov dword [ecx], edx
lea ecx, [edx - 1]
cmp ecx, 0xfff9
jb 0x4d774e
mov ecx, eax
cmp dword [esp + 0x24], eax
je 0x4d7750
mov ecx, esi
add ecx, 0xfeb9e9d6
cmp ecx, 6
jb 0x4d775f
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
cmp ecx, edx
push 0
pop ecx
setl cl
cmp ecx, 0xfffffffa
jle 0x4d7944
mov byte [esp + 0xf], al
mov dword [esp + 0x28], 0x1503
cmp dword [esp + 0x28], 0xa12
jge 0x4d7934
lea eax, [esp + 0xb8]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push dword [esp + 0xb8]
lea ecx, [esp + 0x2b8]
call fcn.00428e00
and dword [esp + 0xf4], 0
mov ecx, dword [esp + 0xb8]
test ecx, ecx
jle 0x4d781c
mov esi, dword [esp + 0x2b4]
lea eax, [esp + 0x368]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
imul ecx, dword [esp + 0x368], 0xc
lea eax, [esp + 0xf4]
push eax
add ecx, esi
call fcn.00428c5d
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xb8]
inc eax
mov dword [esp + 0xf4], eax
cmp eax, ecx
jl 0x4d77d7
and dword [esp + 0x264], 0
xor edi, edi
and dword [esp + 0x268], 0
and dword [esp + 0x26c], 0
and dword [esp + 0x28], edi
mov byte [esp + 0x23], 1
test ecx, ecx
jle 0x4d78b1
mov edx, dword [esp + 0x2b4]
test edi, edi
js 0x4d78ac
imul ecx, edi, 0xc
push 3
add ecx, edx
pop edx
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
test eax, 0xfffffffc
jne 0x4d7869
sub ecx, 0x24
sub edi, edx
jns 0x4d7856
mov edx, dword [esp + 0x2b4]
test edi, edi
js 0x4d78ac
imul esi, edi, 0xc
lea ecx, [esp + 0x264]
mov eax, dword [esi + edx + 4]
add eax, 0xfffffffc
push eax
call fcn.00428c5d
mov edx, dword [esp + 0x2b4]
mov eax, dword [esp + 0x28]
add dword [esi + edx + 4], 0xfffffffc
inc edi
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0xb8]
jl 0x4d784a
jmp 0x4d78b1
mov byte [esp + 0x23], 0
cmp byte [esp + 0x23], 0
mov ecx, 0xac233c
mov eax, 0xac2330
cmove eax, ecx
push eax
call fcn.004fb4f7
cmp byte [esp + 0x27], 0
pop ecx
je 0x4d7917
mov esi, dword [esp + 0x268]
xor eax, eax
mov edi, dword [esp + 0x264]
sub esi, edi
sar esi, 2
mov dword [esp + 0x28], eax
test esi, esi
je 0x4d790c
mov eax, dword [edi + eax*4]
inc eax
push eax
push 0xac2284
call fcn.004fb3a8
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
pop ecx
pop ecx
cmp eax, esi
jb 0x4d78ee
push 0xac21b5
call fcn.004fb4f7
pop ecx
lea ecx, [esp + 0x264]
call fcn.0042a773
lea ecx, [esp + 0x2b4]
call fcn.0042a950
xor esi, esi
xor eax, eax
inc esi
cmp byte [esp + 0xf], 0
je 0x4d7978
push eax
call dword [0xd00094]
jmp 0x4d7978
mov ecx, dword [esp + 0x24]
push 0xfffffffffffffffe
pop edx
sub edx, ecx
xor ecx, ecx
test edx, edx
setle cl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x3bc]
mov edx, dword [esp + 0x28]
mov dword [ecx], edx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4d7978
push eax
push eax
call dword [0xd00064]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 9
push 0
pop eax
jne 0x4d7726
push 3
pop edi
lea ecx, [esp + 0x3bc]
call fcn.0042a773
cmp dword [esp + 0x14], 0
je 0x4d822c
push dword [esp + 0x2f0]
movdqa xmm0, xmmword [0xac54f0]
lea ecx, [esp + 0x5ac]
push ecx
xor eax, eax
lea ecx, [esp + 0x5a0]
push ecx
push eax
lea ecx, [esp + 0x250]
mov dword [esp + 0x250], eax
movdqu xmmword [esp + 0x5a8], xmm0
mov dword [esp + 0x254], eax
mov dword [esp + 0x258], eax
call fcn.00430ad2
mov esi, dword [esp + 0x240]
or ecx, 0xffffffff
push 4
pop eax
mov dword [esp + 0x1a4], eax
xor edi, edi
mov dword [esp + 0x1a8], eax
inc edi
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], 9
mov dword [esp + 0x10], esi
mov dword [esi + 4], 0xe
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], 0x46773196
mov dword [esp + 0x3c], 0xced66e5d
mov dword [esp + 0x18], 0xffffffe5
cmp dword [esp + 0x18], 0xfffffffb
je 0x4d7cb5
mov eax, dword [esp + 0x240]
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], 0xfffffffb
push 3
mov dword [esp + 0x28], 0xfffffffc
pop ecx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], 0
jl 0x4d7c41
mov dword [esp + 0x24], 1
mov dword [esp + 0x3c], 0x1e2a
cmp dword [esp + 0x3c], 0x7fa
jge 0x4d7c24
lea eax, [esp + 0xa4]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
jmp 0x4d7c0d
dec eax
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x98]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push dword [esp + 0x98]
lea ecx, [esp + 0x50c]
call fcn.00428b0d
and dword [esp + 0x4c], 0
mov edi, dword [esp + 0x98]
mov ecx, dword [esp + 0x508]
mov dword [esp + 8], ecx
test edi, edi
jle 0x4d7b38
mov esi, ecx
push esi
push 0xac224c
call fcn.004fad78
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0xa0]
inc eax
pop ecx
pop ecx
push 4
pop ecx
add esi, ecx
mov dword [esp + 0x4c], eax
cmp eax, edi
jl 0x4d7b0e
mov ecx, dword [esp + 8]
and dword [esp + 0x1fc], 0
xor esi, esi
and dword [esp + 0x204], esi
xor eax, eax
mov dword [esp + 0x200], esi
mov dword [esp + 0x4c], eax
test edi, edi
jle 0x4d7bb2
mov esi, dword [esp + 8]
test eax, eax
je 0x4d7b7d
inc eax
cmp eax, edi
je 0x4d7b7d
mov ecx, dword [ecx]
xor edx, edx
cmp dword [esi - 4], ecx
setl dl
xor eax, eax
cmp ecx, dword [esi + 4]
setl al
cmp edx, eax
je 0x4d7b91
push esi
lea ecx, [esp + 0x200]
call fcn.00428c5d
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 8]
inc eax
push 4
pop edx
add ecx, edx
mov dword [esp + 0x4c], eax
mov dword [esp + 8], ecx
cmp eax, edi
jl 0x4d7b5a
mov esi, dword [esp + 0x200]
sub esi, dword [esp + 0x1fc]
sar esi, 2
push esi
push 0xac2258
call fcn.004fb3a8
pop ecx
xor edi, edi
pop ecx
test esi, esi
je 0x4d7bea
mov eax, dword [esp + 0x1fc]
push dword [eax + edi*4]
push 0xac2284
call fcn.004fb3a8
inc edi
pop ecx
pop ecx
cmp edi, esi
jb 0x4d7bcf
push 0xac21b5
call fcn.004fb4f7
pop ecx
lea ecx, [esp + 0x1fc]
call fcn.0042a773
lea ecx, [esp + 0x508]
call fcn.0042a773
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x4d7ac2
dec eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x24], 6
dec dword [esp + 0x1c]
jns 0x4d7a8b
mov esi, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esp + 0x28]
inc edi
cmp dword [eax + 8], 0
je 0x4d7c99
mov eax, dword [esp + 0x18]
xor edx, edx
cmp eax, edi
mov eax, dword [esp + 0x30]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, 0xf4e2
jg 0x4d7c6f
cmp dword [esi + 4], 0
jne 0x4d7c6f
xor eax, eax
jmp 0x4d7c75
xor eax, eax
xor edi, edi
inc eax
inc edi
mov edx, dword [esp + 0x24]
sub edx, eax
mov eax, dword [esp + 0x24]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
cmp ecx, dword [esp + 0x1c]
jle 0x4d7c99
xor eax, eax
xor edi, edi
inc eax
inc edi
jmp 0x4d7c9b
xor eax, eax
mov dword [esp + 0x3c], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffffb
mov eax, dword [esp + 0x28]
jne 0x4d7a69
push 4
pop eax
dec dword [esi + 4]
cmp dword [esi + 4], 2
jge 0x4d7a37
lea ecx, [esp + 0x240]
call fcn.0042a773
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x3c8]
push 2
mov dword [esp + 0x1a8], eax
call fcn.00428b0d
mov dword [esp + 0x30], 0x215f
cmp dword [esp + 0x30], 0xb44
jge 0x4d7d9b
lea eax, [esp + 0x314]
push eax
lea eax, [esp + 0x174]
push eax
push 0xac230c
call fcn.004fad78
or eax, 0xffffffff
xor esi, esi
and dword [esp + 0x58], esi
add esp, 0xc
mov dword [esp + 0x28], eax
xor eax, eax
inc eax
mov edi, eax
cmp dword [esp + 0x170], eax
jl 0x4d7d8a
lea eax, [esp + 0x168]
push eax
push 0xac224c
call fcn.004fad78
mov edx, dword [esp + 0x54]
mov eax, edx
pop ecx
pop ecx
xor ecx, ecx
cmp edx, esi
push 8
setg cl
sub eax, esi
imul ecx, eax
pop eax
add ecx, dword [esp + 0x168]
cmp ecx, eax
cmovl eax, ecx
add edx, dword [esp + 0x168]
add esi, eax
mov dword [esp + 0x4c], edx
cmp esi, dword [esp + 0x314]
jge 0x4d7d8e
inc edi
cmp edi, dword [esp + 0x170]
jle 0x4d7d35
mov edi, dword [esp + 0x28]
push edi
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
push 1
lea ecx, [esp + 0x450]
call fcn.00428b0d
mov dword [esp + 0x30], 0x23ce
cmp dword [esp + 0x30], 0x769
jge 0x4d7f7e
lea eax, [esp + 0x310]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0xf8]
push eax
push 0xac2314
call fcn.004fad78
mov edi, dword [esp + 0x88]
lea ecx, [esp + 0x2d4]
xor eax, eax
mov dword [esp + 0x318], 1
add esp, 0x10
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2c8], eax
inc edi
mov dword [esp + 0x2cc], eax
lea eax, [esp + 0x308]
push eax
push edi
call fcn.0042a78f
mov esi, dword [esp + 0x2c4]
xor eax, eax
push 2
pop edx
push 4
pop ecx
mov dword [esi + 4], eax
mov dword [esi], eax
cmp edi, ecx
jl 0x4d7e55
cmp dword [esi + edx*4], eax
je 0x4d7e4b
lea ecx, [edx + edx]
jmp 0x4d7e47
mov dword [esi + ecx*4], eax
add ecx, edx
cmp ecx, edi
jl 0x4d7e42
inc edx
mov ecx, edx
imul ecx, edx
cmp ecx, edi
jle 0x4d7e38
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x364], eax
add ecx, 0xa
mov dword [esp + 0x24c], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], eax
lea eax, [esp + 0x364]
push eax
push ecx
lea ecx, [esp + 0x254]
call fcn.0042a78f
mov ecx, dword [esp + 0x78]
xor eax, eax
inc eax
mov edi, eax
cmp ecx, eax
jl 0x4d7ebc
mov eax, dword [esp + 0x24c]
sub esi, eax
lea edx, [eax + 4]
mov eax, dword [esi + edx]
add eax, dword [edx - 4]
inc edi
mov dword [edx], eax
mov ecx, dword [esp + 0x78]
push 4
pop eax
add edx, eax
cmp edi, ecx
jle 0x4d7ea6
mov eax, ecx
xor edi, edi
sub eax, dword [esp + 0xf0]
xor esi, esi
mov dword [esp + 8], edi
mov dword [esp + 0x30], eax
lea edx, [eax + 5]
mov dword [esp + 0x28], edx
test edx, edx
js 0x4d7f50
lea eax, [edx + edi]
mov edi, dword [esp + 0xf0]
cdq
dec edi
sub eax, edx
mov edx, eax
sar edx, 1
add edi, edx
cmp edi, ecx
jg 0x4d7f3d
mov ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0x24c]
dec ecx
lea ecx, [eax + ecx*4]
lea eax, [eax + edi*4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
sub eax, dword [ecx]
mov ecx, dword [esp + 0x78]
cmp eax, dword [esp + 0x310]
jl 0x4d7f89
push 4
pop eax
add dword [esp + 0x24], eax
inc edi
mov eax, dword [esp + 0x4c]
add eax, 4
mov dword [esp + 0x4c], eax
cmp edi, ecx
jle 0x4d7f11
mov edi, dword [esp + 8]
mov esi, edx
dec edx
mov dword [esp + 0x28], edx
cmp edi, edx
jle 0x4d7edc
mov eax, dword [esp + 0x30]
inc eax
push 0xffffffffffffffff
cmp esi, eax
pop eax
cmovg esi, eax
push esi
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
lea ecx, [esp + 0x24c]
call fcn.0042a773
lea ecx, [esp + 0x2c4]
call fcn.0042a773
xor eax, eax
push 4
mov dword [esp + 0x18], eax
pop edi
jmp 0x4d7fa9
lea edi, [edx + 1]
mov edx, dword [esp + 0x28]
mov dword [esp + 8], edi
jmp 0x4d7f48
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x194], 0xcc25
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x4d7f96
mov dword [esp + 0x30], 0x1ab3
cmp dword [esp + 0x30], 0x1060
jge 0x4d8106
lea eax, [esp + 0x128]
push eax
push 0xac2250
call fcn.004fad78
and dword [esp + 0x30], 0
xor esi, esi
pop ecx
pop ecx
push 0
push 3
pop eax
push eax
push dword [esp + 0x134]
inc esi
push dword [esp + 0x134]
mov dword [esp + 0x5c], esi
call fcn.004ff5a0
mov ecx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], ecx
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
test ecx, ecx
jl 0x4d8079
jg 0x4d801b
test eax, eax
je 0x4d8079
mov eax, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0x28], eax
inc edi
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
xor eax, eax
push 0
push 3
pop ecx
push ecx
push eax
push esi
call fcn.004ff5a0
push 0
push 0x4f
push edx
push eax
call fcn.00514360
mov ecx, dword [esp + 0x4c]
mov esi, eax
add ecx, edi
mov eax, edx
mov edx, dword [esp + 0x28]
adc edx, 0
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x28], edx
cmp edx, dword [esp + 0x30]
jl 0x4d8030
jg 0x4d806f
cmp ecx, dword [esp + 0x3c]
jb 0x4d8030
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], esi
jmp 0x4d807c
xor edi, edi
inc edi
xor edx, edx
xorps xmm0, xmm0
mov eax, edi
movlpd qword [esp + 0x40], xmm0
cmp dword [esp + 0x12c], edx
jl 0x4d80d9
jg 0x4d809d
cmp dword [esp + 0x128], edx
jbe 0x4d80d9
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
push 0
push 7
push edx
push eax
call fcn.004ff5a0
push 0
push 0x4f
push edx
push eax
call fcn.00514360
add edi, 1
adc esi, 0
cmp esi, dword [esp + 0x12c]
jl 0x4d80a5
jg 0x4d80d5
cmp edi, dword [esp + 0x128]
jb 0x4d80a5
mov esi, dword [esp + 0x4c]
sub esi, eax
mov eax, dword [esp + 0x28]
push 0
sbb eax, edx
add esi, 0x4f
push 0x4f
adc eax, 0
push eax
push esi
call fcn.00514360
push edx
push eax
push 0xac2250
call fcn.004fb3a8
add esp, 0xc
xor eax, eax
push 4
pop edi
mov dword [esp + 0x14], eax
jmp 0x4d8122
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c8]
mov dword [ecx + edx*4], 0x857b1a09
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x4d810c
xor esi, esi
mov dword [esp + 0x14], eax
inc esi
jmp 0x4d8148
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x44c]
mov dword [ecx + edx*4], 0x87b8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x4d8132
mov dword [esp + 0x194], eax
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x19c]
imul edx, ecx
mov ecx, dword [esp + 0x198]
push 0
cmp edx, ecx
pop ecx
sete cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x19c]
cmp dword [esp + 0x30], ecx
setl dl
cmp edi, edx
sbb ecx, ecx
inc ecx
cmp ecx, 0xdb2b058e
jb 0x4d81a4
mov ecx, dword [esp + 0x194]
mov ecx, dword [esp + 0x194]
mov ecx, dword [esp + 0x194]
mov ecx, dword [esp + 0x19c]
mov esi, dword [esp + 0x3c8]
mov ecx, 0x5d732ada
push 0
mov esi, dword [esi + 4]
sub ecx, esi
pop ecx
setns cl
xor edx, edx
cmp ecx, 0x5761
setge dl
imul ecx, edx, 0xdcee
add ecx, esi
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, esi
jg 0x4d81f8
mov ecx, dword [esp + 0x44c]
cmp dword [ecx], eax
jne 0x4d81fc
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x3c8]
xor eax, eax
cmp dword [esp + 0x2c], esi
setl al
mov dword [ecx + 4], eax
lea ecx, [esp + 0x44c]
call fcn.0042a773
lea ecx, [esp + 0x3c8]
call fcn.0042a773
jmp 0x4db9dd
push 1
lea ecx, [esp + 0x1dc]
call fcn.00428b0d
xor edx, edx
inc edx
xor eax, eax
mov dword [esp + 0x24], edx
mov dword [esp + 8], 0x5f432603
mov dword [esp + 0x2c], 0xfffffff8
mov dword [esp + 0x10], eax
jmp 0x4d8272
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1d8]
mov dword [ecx + edx*4], 0xfffffffb
xor edx, edx
inc dword [esp + 0x10]
inc edx
cmp dword [esp + 0x10], edx
jl 0x4d8259
mov dword [esp + 0x10], eax
jmp 0x4d8291
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x458], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4d827e
mov ecx, dword [esp + 0x1d8]
mov ecx, dword [ecx]
imul ecx, ecx
cmp ecx, dword [esp + 0x24]
jg 0x4d82b4
mov ecx, dword [esp + 0x1d8]
cmp dword [ecx], eax
jne 0x4d82bc
mov esi, eax
cmp dword [esp + 0x24], eax
je 0x4d82be
mov esi, edx
mov ecx, dword [esp + 0x1d8]
xor edx, edx
cmp esi, dword [ecx]
setge dl
xor esi, esi
mov dword [esp + 8], edx
mov ecx, dword [esp + 8]
mov dword [esp + 0x460], ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1d8]
push esi
cmp dword [edx], ecx
mov edx, dword [edx]
pop ecx
setg cl
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
sub esi, ecx
xor ecx, ecx
cmp edx, esi
setge cl
imul ecx, edx
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x2c]
jne 0x4d833f
mov dword [esp + 0x30], 0x6fd8
mov dword [esp + 8], eax
jmp 0x4d8337
mov ecx, dword [esp + 8]
mov ecx, dword [esp + ecx*4 + 0x45c]
mov dword [esp + 0x30], ecx
inc dword [esp + 8]
cmp dword [esp + 8], eax
jle 0x4d8324
jmp 0x4d8363
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x4d8353
push eax
push eax
push eax
push eax
call dword [section..idata]
mov eax, dword [esp + 0x1d8]
mov eax, dword [eax]
mov dword [esp + 0x460], eax
lea ecx, [esp + 0x1d8]
call fcn.0042a773
mov eax, dword [0xcfedc0]
test al, 2
jne 0x4d83fd
or eax, 2
mov dword [0xcfedc0], eax
xor eax, eax
push eax
push eax
mov dword [0xcfedd0], eax
mov dword [0xcfedd4], eax
call fcn.0042f5ea
mov ecx, eax
mov dword [0xcfedec], 0x3f800000
mov dword [0xcfedd0], ecx
xor eax, eax
mov dword [esp + 0x36c], ecx
lea ecx, [esp + 0x36c]
push ecx
push 0x10
push eax
mov dword [0xcfedd8], eax
mov ecx, 0xcfedd8
mov dword [0xcfede0], eax
mov dword [0xcfeddc], eax
lea eax, [esp + 0x52c]
push eax
call fcn.0042f153
push 0x5186e0
mov dword [0xcfede4], 7
mov dword [0xcfede8], 8
call fcn.004fb37e
pop ecx
xor eax, eax
or edi, 0xffffffff
mov dword [esp + 0x10], edi
inc eax
mov dword [esp + 8], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], 0x1fa3
cmp dword [esp + 0x30], 0x1027
jge 0x4d85be
lea eax, [esp + 0x6c]
push eax
push 0xac2328
call fcn.004fad78
mov esi, dword [esp + 0x74]
xor eax, eax
pop ecx
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x31c]
pop ecx
push eax
lea eax, [esi + 0x1f]
mov dword [esp + 0x31c], edi
shr eax, 5
lea ecx, [esp + 0x114]
push eax
call fcn.0042e908
and dword [esp + 0x11c], 0
lea ecx, [esp + 0x110]
push esi
call fcn.0042ad5f
mov esi, dword [esp + 0x6c]
xor edi, edi
test esi, esi
jle 0x4d8502
and dword [esp + 0x2c], 0
test esi, esi
jle 0x4d84ee
lea eax, [esp + 0x180]
push eax
push 0xac2248
call fcn.004fad78
xor eax, eax
inc eax
pop ecx
pop ecx
cmp dword [esp + 0x180], eax
je 0x4d84c7
push 3
pop ecx
cmp dword [esp + 0x180], ecx
jne 0x4d84df
mov ecx, edi
mov edx, edi
and ecx, 0x1f
shr edx, 5
shl eax, cl
mov ecx, dword [esp + 0x110]
not eax
and dword [ecx + edx*4], eax
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x6c]
jl 0x4d849b
push 0xac2348
call fcn.004fad78
mov esi, dword [esp + 0x70]
inc edi
pop ecx
cmp edi, esi
jl 0x4d8492
xor eax, eax
xor edi, edi
mov dword [esp + 0x24], eax
test esi, esi
jle 0x4d8537
xor eax, eax
mov ecx, edi
and ecx, 0x1f
inc eax
shl eax, cl
mov edx, edi
mov ecx, dword [esp + 0x110]
shr edx, 5
test dword [ecx + edx*4], eax
mov eax, dword [esp + 0x24]
je 0x4d8532
inc eax
mov dword [esp + 0x24], eax
inc edi
cmp edi, esi
jl 0x4d850e
push eax
push 0xac2328
call fcn.004fb3a8
mov edi, dword [esp + 0x74]
xor esi, esi
pop ecx
pop ecx
test edi, edi
jle 0x4d8582
xor eax, eax
mov ecx, esi
and ecx, 0x1f
inc eax
mov edx, esi
shl eax, cl
mov ecx, dword [esp + 0x110]
shr edx, 5
test dword [ecx + edx*4], eax
je 0x4d857d
lea eax, [esi + 1]
push eax
push 0xac232c
call fcn.004fb3a8
mov edi, dword [esp + 0x74]
pop ecx
pop ecx
inc esi
cmp esi, edi
jl 0x4d854e
push 0xac21b5
call fcn.004fb4f7
and dword [esp + 0x120], 0
mov eax, dword [esp + 0x114]
pop ecx
test eax, eax
je 0x4d85be
push eax
call fcn.004fb47e
xor eax, eax
pop ecx
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
push 2
lea ecx, [esp + 0x48c]
call fcn.00428b0d
or edx, 0xffffffff
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], 0x210e
cmp dword [esp + 0x30], 0xd7f
jge 0x4d864f
lea eax, [esp + 0xac]
push eax
push 0xac224c
call fcn.004fad78
jmp 0x4d8637
dec eax
mov dword [esp + 0xac], eax
lea eax, [esp + 0x374]
push eax
lea eax, [esp + 0x384]
push eax
push 0xac230c
call fcn.004fad78
mov eax, dword [esp + 0x38c]
add esp, 0xc
add eax, dword [esp + 0x374]
push eax
push 0xac2258
call fcn.004fb3a8
mov eax, dword [esp + 0xb4]
pop ecx
pop ecx
test eax, eax
jne 0x4d85f9
dec eax
or edx, 0xffffffff
mov dword [esp + 0xac], eax
mov dword [esp + 0x2c], 0xfffffffc
mov dword [esp + 8], 0
jmp 0x4d8673
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x488]
mov dword [eax + ecx*4], edx
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x4d8661
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x4d8692
push 0
push 0
push 0
call dword [0xd0000c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
sub ecx, eax
mov eax, dword [esp + 0x10]
imul ecx, ecx, 0xfff9
cmp eax, ecx
setl dl
mov dword [esp + 8], edx
cmp dword [esp + 8], 0
jne 0x4d86c5
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x18]
inc edi
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x488]
cmp dword [eax + 4], edi
sete cl
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 8], 0x438e
test eax, eax
je 0x4d870d
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x18], 0
je 0x4d8bbe
mov dword [esp + 8], 0xfffffff3
jmp 0x4d89ba
mov dword [esp + 0x30], 0x203d
cmp dword [esp + 0x30], 0xf03
jge 0x4d877b
lea eax, [esp + 0x188]
push eax
lea eax, [esp + 0x74]
push eax
push 0xac229c
call fcn.004fad78
mov eax, dword [esp + 0x194]
add esp, 0xc
cmp eax, 0xa
jne 0x4d88e5
cmp dword [esp + 0x70], 1
jne 0x4d88b1
push 0xac22a4
call fcn.004fb4f7
pop ecx
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x4d89b6
mov dword [esp + 0x30], 0x1ab5
cmp dword [esp + 0x30], 0xa34
jge 0x4d89aa
lea eax, [esp + 0x68]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push dword [esp + 0x68]
lea ecx, [esp + 0x1f4]
call fcn.00428b0d
push dword [esp + 0x68]
lea ecx, [esp + 0x1e8]
call fcn.00428b0d
mov eax, dword [esp + 0x68]
xor edi, edi
test eax, eax
jle 0x4d87fe
mov esi, dword [esp + 0x1f0]
push esi
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push 4
pop eax
add esi, eax
inc edi
mov eax, dword [esp + 0x68]
cmp edi, eax
jl 0x4d87e3
xor edi, edi
test eax, eax
jle 0x4d8824
mov esi, dword [esp + 0x1e4]
push esi
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push 4
pop eax
inc edi
add esi, eax
cmp edi, dword [esp + 0x68]
jl 0x4d880b
push dword [esp + 0x1f0]
push dword [esp + 0x1f8]
call fcn.0042f7cf
push dword [esp + 0x1ec]
push dword [esp + 0x1f4]
call fcn.0042f7cf
mov edi, dword [esp + 0x78]
xorps xmm0, xmm0
add esp, 0x10
movlpd qword [esp + 0x40], xmm0
mov eax, dword [esp + 0x44]
xor ecx, ecx
xor esi, esi
movlpd qword [esp + 0x30], xmm0
mov edx, dword [esp + 0x34]
test edi, edi
jle 0x4d8977
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
cmp esi, edi
jge 0x4d8912
cmp ecx, edi
jge 0x4d88ae
mov eax, dword [esp + 0x1f0]
mov edx, dword [esp + 0x1e4]
mov eax, dword [eax + ecx*4]
cmp eax, dword [edx + esi*4]
jg 0x4d8912
inc esi
jmp 0x4d8926
push 0xac22c4
call fcn.004fb3a8
mov eax, dword [esp + 0x74]
xor esi, esi
dec eax
pop ecx
test eax, eax
jle 0x4d877b
push 0xac22c0
call fcn.004fb3a8
mov eax, dword [esp + 0x74]
inc esi
dec eax
pop ecx
cmp esi, eax
jl 0x4d88cb
jmp 0x4d877b
xor esi, esi
cmp dword [esp + 0x70], esi
jle 0x4d877b
push eax
push 0xac2248
call fcn.004fb3a8
inc esi
pop ecx
pop ecx
cmp esi, dword [esp + 0x70]
jge 0x4d877b
mov eax, dword [esp + 0x188]
jmp 0x4d88f1
mov eax, dword [esp + 0x1f0]
mov eax, dword [eax + ecx*4]
cdq
add dword [esp + 0x18], eax
adc dword [esp + 0x24], edx
inc ecx
cmp ecx, edi
jge 0x4d8947
cmp esi, edi
jge 0x4d8944
mov eax, dword [esp + 0x1e4]
mov edx, dword [esp + 0x1f0]
mov eax, dword [eax + esi*4]
cmp eax, dword [edx + ecx*4]
jg 0x4d8947
inc ecx
jmp 0x4d895b
mov eax, dword [esp + 0x1e4]
mov eax, dword [eax + esi*4]
cdq
add dword [esp + 0x10], eax
adc dword [esp + 0x1c], edx
inc esi
dec dword [esp + 0x2c]
jne 0x4d8890
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
jmp 0x4d897f
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
sub ecx, esi
sbb eax, edx
push eax
push ecx
push 0xac2250
call fcn.004fb3a8
add esp, 0xc
lea ecx, [esp + 0x1e4]
call fcn.0042a773
lea ecx, [esp + 0x1f0]
call fcn.0042a773
push 0
push 0
push 0
call dword [0xd0020c]
dec dword [esp + 8]
cmp dword [esp + 8], 0xffffffe5
je 0x4d8729
mov dword [esp + 0x30], 0x264e
cmp dword [esp + 0x30], 0x794
jge 0x4d8a90
lea eax, [esp + 0xd0]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push dword [esp + 0xd0]
lea ecx, [esp + 0x474]
call fcn.00428b0d
mov ecx, dword [esp + 0xd0]
xor edi, edi
test ecx, ecx
jle 0x4d8a34
mov esi, dword [esp + 0x470]
push esi
push 0xac2248
call fcn.004fad78
pop ecx
pop ecx
mov ecx, dword [esp + 0xd0]
inc edi
push 4
pop eax
add esi, eax
cmp edi, ecx
jl 0x4d8a16
xor edx, edx
lea eax, [ecx + ecx]
xor esi, esi
mov dword [esp + 0x24], edx
xor edi, edi
test eax, eax
jle 0x4d8a77
mov eax, edi
cdq
idiv ecx
mov eax, dword [esp + 0x470]
cmp dword [eax + edx*4], 0
je 0x4d8a69
inc esi
cmp dword [esp + 0x24], esi
mov edx, esi
cmovg edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
jmp 0x4d8a6f
mov edx, dword [esp + 0x24]
xor esi, esi
inc edi
lea eax, [ecx + ecx]
cmp edi, eax
jl 0x4d8a45
push edx
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
lea ecx, [esp + 0x470]
call fcn.0042a773
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x4d8aa8
push eax
push eax
push eax
push eax
push eax
push eax
call dword [0xd00114]
push 4
pop esi
lea ecx, [esp + 0x488]
call fcn.0042a773
xorps xmm0, xmm0
movdqu xmmword [esp + 0x588], xmm0
mov dword [esp + 0x30], 0x1fd3
cmp dword [esp + 0x30], 0x900
jge 0x4d8c77
and dword [esp + 0xb4], 0
lea eax, [esp + 0x74]
and dword [esp + 0x74], 0
push eax
lea eax, [esp + 0xb8]
push eax
push 0xac230c
call fcn.004fad78
mov eax, dword [esp + 0xc0]
add esp, 0xc
xor ecx, ecx
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004f6b31
pop ecx
mov ecx, eax
xor eax, eax
inc eax
mov dword [esp + 0x30], ecx
mov edi, eax
and dword [ecx], 0
cmp dword [esp + 0xb4], eax
jl 0x4d8b50
lea esi, [ecx + 4]
push esi
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push 4
pop eax
inc edi
add esi, eax
cmp edi, dword [esp + 0xb4]
jle 0x4d8b34
mov eax, dword [esp + 0x74]
xor esi, esi
test eax, eax
je 0x4d8c72
mov edi, dword [esp + 0x30]
dec eax
mov ecx, 0xad3d60
mov dword [esp + 0x74], eax
lea eax, [esp + 0xd4]
push eax
call fcn.00428021
cmp dword [esp + 0xd4], 1
jne 0x4d8bfd
lea eax, [esp + 0x348]
push eax
push ecx
lea eax, [esp + 0x378]
mov ecx, 0xad3d60
push eax
call fcn.00428160
pop ecx
mov ecx, eax
call fcn.00428160
mov ecx, dword [esp + 0x348]
mov eax, dword [esp + 0x370]
sub ecx, esi
mov dword [edi + eax*4], ecx
jmp 0x4d8c66
mov dword [esp + 0x40], 0x312a7fad
push 4
mov dword [esp + 0x44], 0xff7828e9
mov dword [esp + 0xc], 0
pop esi
jmp 0x4d8bee
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x638], 0x9718b2f1
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x4d8bdb
inc dword [esp + 0x2c]
jmp 0x4d8aab
cmp dword [esp + 0xd4], 2
jne 0x4d8c2a
and dword [esp + 0x190], 0
lea eax, [esp + 0x190]
push eax
mov ecx, 0xad3d60
call fcn.00428160
add esi, dword [esp + 0x190]
jmp 0x4d8c66
push 3
pop eax
cmp dword [esp + 0xd4], eax
jne 0x4d8c66
lea eax, [esp + 0x350]
mov ecx, 0xad3d60
push eax
call fcn.00428160
mov eax, dword [esp + 0x350]
mov ecx, 0xad3cb8
mov eax, dword [edi + eax*4]
add eax, esi
push eax
call fcn.0042844a
push eax
call fcn.0042f9e1
pop ecx
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x4d8b62
dec eax
mov dword [esp + 0x74], eax
push 1
lea ecx, [esp + 0x444]
call fcn.00428b0d
push 0xfffffffffffffffa
pop eax
mov dword [esp + 8], eax
xor esi, esi
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 8], eax
inc esi
jmp 0x4d8cb1
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x440]
mov dword [ecx + edx*4], 0x5b57fd54
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x4d8c9b
mov dword [esp + 8], eax
cmp dword [esp + 8], eax
jl 0x4d8dfb
mov dword [esp + 0x30], 0x265e
cmp dword [esp + 0x30], 0xedd
jge 0x4d8dd2
lea eax, [esp + 0x158]
push eax
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x398]
push eax
lea eax, [esp + 0x148]
push eax
push 0xac265c
call fcn.004fad78
movd xmm0, dword [esp + 0x150]
add esp, 0x14
mov eax, dword [esp + 0x178]
cvtdq2pd xmm0, xmm0
shl eax, 2
movd xmm2, eax
movapd xmm1, xmm0
mulsd xmm1, qword [0xac53f0]
cvtdq2pd xmm2, xmm2
mulsd xmm1, xmm0
movd xmm0, dword [esp + 0x158]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
comisd xmm1, xmm2
jb 0x4d8d5c
mov eax, 0xac22bc
push eax
call fcn.004fb4f7
pop ecx
jmp 0x4d8dd2
push 0xac22b8
call fcn.004fb4f7
movd xmm0, dword [esp + 0x140]
mov eax, dword [esp + 0x17c]
movd xmm3, dword [esp + 0x394]
cvtdq2pd xmm0, xmm0
shl eax, 2
push ecx
movd xmm1, eax
movapd xmm2, xmm0
mulsd xmm2, qword [0xac53f0]
cvtdq2pd xmm3, xmm3
mulsd xmm2, xmm0
movd xmm0, dword [esp + 0x160]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm3, xmm2
subsd xmm1, xmm0
divsd xmm3, xmm1
movsd qword [esp], xmm3
push 0xac24a0
call fcn.004fb3a8
add esp, 0xc
mov ecx, dword [esp + 8]
xor edx, edx
mov eax, dword [esp + 0x440]
cmp dword [eax + ecx*4], 0xba1bf2b
sete dl
mov dword [esp + 0x30], edx
mov eax, dword [esp + 8]
dec dword [esp + 8]
jns 0x4d8cc5
lea ecx, [esp + 0x440]
call fcn.0042a773
lea eax, [esp + 0xa8]
push eax
call fcn.004dba54
or edi, 0xffffffff
push 3
pop edx
mov eax, dword [eax]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], 0xfffffffe
mov dword [esp + 0x28], 0x48afa2fa
mov dword [esp + 0x10], 0x8ab9c279
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x30], 0x66b6c7e7
mov dword [esp + 0x18], 0x512e
mov dword [esp + 0x14], eax
jmp 0x4d8e67
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x5b8], 0xfffffff8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x4d8e54
push 2
mov dword [esp + 0x18], eax
pop edx
jmp 0x4d8e85
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x618], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x4d8e76
mov dword [esp + 0x14], eax
jmp 0x4d8ea4
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x3f8], 0x1a79
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x4d8e91
xor edx, edx
mov dword [esp + 0x14], eax
inc edx
jmp 0x4d8ec6
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0xe4], 0xf5b04ce9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x4d8eb3
mov dword [esp + 0x30], 0x2277
cmp dword [esp + 0x30], 0x126c
jge 0x4d908b
lea eax, [esp + 0xdc]
push eax
push 0xac224c
call fcn.004fad78
xor eax, eax
pop ecx
pop ecx
mov dword [esp + 0x358], eax
lea ecx, [esp + 0x208]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], eax
lea eax, [esp + 0x358]
push eax
push 6
call fcn.0042e908
and dword [esp + 0x214], 0
lea ecx, [esp + 0x208]
push 0xb3
call fcn.0042ad5f
push dword [esp + 0xdc]
lea ecx, [esp + 0x4bc]
call fcn.00428b0d
and dword [esp + 0x2c], 0
mov edi, dword [esp + 0xdc]
test edi, edi
jle 0x4d8f93
mov esi, dword [esp + 0x4b8]
push esi
push 0xac224c
call fcn.004fad78
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0xe4]
inc eax
pop ecx
pop ecx
push 4
pop ecx
add esi, ecx
mov dword [esp + 0x2c], eax
cmp eax, edi
jl 0x4d8f6d
xor eax, eax
xor esi, esi
and dword [esp + 0x1bc], eax
dec edi
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], esi
js 0x4d9021
mov eax, dword [esp + 0x4b8]
lea eax, [eax + edi*4]
mov dword [esp + 8], eax
mov esi, dword [eax]
xor eax, eax
mov ecx, esi
inc eax
and ecx, 0x1f
mov edx, esi
shl eax, cl
mov ecx, dword [esp + 0x208]
shr edx, 5
test dword [ecx + edx*4], eax
jne 0x4d9003
push dword [esp + 8]
mov edx, esi
xor eax, eax
and esi, 0x1f
shr edx, 5
inc eax
mov ecx, esi
shl eax, cl
mov ecx, dword [esp + 0x20c]
or dword [ecx + edx*4], eax
lea ecx, [esp + 0x1b8]
call fcn.00428c5d
mov eax, dword [esp + 8]
push 4
pop ecx
sub eax, ecx
dec edi
mov dword [esp + 8], eax
jns 0x4d8fbd
mov esi, dword [esp + 0x1b8]
mov eax, dword [esp + 0x1b4]
sub esi, eax
sar esi, 2
push esi
push 0xac2258
call fcn.004fb3a8
dec esi
pop ecx
pop ecx
js 0x4d904f
mov edi, dword [esp + 0x1b4]
push dword [edi + esi*4]
push 0xac2284
call fcn.004fb3a8
dec esi
pop ecx
pop ecx
jns 0x4d903d
push 0xac21b5
call fcn.004fb4f7
pop ecx
lea ecx, [esp + 0x1b4]
call fcn.0042a773
lea ecx, [esp + 0x4b8]
call fcn.0042a773
and dword [esp + 0x214], 0
lea ecx, [esp + 0x208]
call fcn.0042a773
xor eax, eax
or edi, 0xffffffff
inc dword [esp + 0x3f8]
dec dword [esp + 0xe4]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x18]
imul edx, ecx
test edx, edx
je 0x4d90d8
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
cmp edx, ecx
push 0
pop ecx
setle cl
mov dword [esp + 0x5bc], ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x18], 0x7fcc
jge 0x4d90d8
mov edx, eax
jmp 0x4d90db
xor edx, edx
inc edx
mov ecx, dword [esp + 0x10]
add ecx, edx
xor edx, edx
cmp edx, ecx
push 0
sbb ecx, ecx
neg ecx
add ecx, dword [esp + 0x2c]
cmp ecx, edi
mov ecx, dword [esp + 0x20]
setle dl
cmp ecx, edx
pop ecx
setle cl
sub ecx, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x30], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4d911d
push eax
call dword [0xd0011c]
mov dword [esp + 0x30], 0x1cf2
cmp dword [esp + 0x30], 0x50f
jge 0x4d9264
lea eax, [esp + 0xec]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push dword [esp + 0xec]
lea ecx, [esp + 0x3f0]
call fcn.00428b0d
mov esi, dword [esp + 0xec]
xor ecx, ecx
and dword [esp + 0x28], ecx
xor edi, edi
mov dword [esp + 0x2c], ecx
test esi, esi
jle 0x4d91c3
mov esi, dword [esp + 0x3ec]
jmp 0x4d917e
mov esi, dword [esp + 0x30]
push esi
push 0xac224c
call fcn.004fad78
mov edx, dword [esi]
xor eax, eax
cmp dword [esi], 1
pop ecx
pop ecx
mov ecx, dword [esp + 0x2c]
sete al
add edi, eax
call fcn.004cee3c
push 4
mov ecx, eax
mov eax, dword [esp + 0x2c]
pop edx
add esi, edx
mov dword [esp + 0x2c], ecx
inc eax
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0xec]
mov dword [esp + 0x28], eax
cmp eax, esi
jl 0x4d917a
lea edx, [esi + esi]
mov dword [esp + 8], edx
test edi, edi
je 0x4d91d3
sub esi, edi
push esi
jmp 0x4d9249
cmp ecx, 1
jle 0x4d91e4
push 0xac22a4
call fcn.004fb4f7
jmp 0x4d9254
xor eax, eax
mov dword [esp + 0x28], eax
test esi, esi
jle 0x4d9248
mov ecx, dword [esp + 0x3ec]
mov ecx, dword [ecx + eax*4]
inc eax
mov dword [esp + 0x2c], eax
mov edi, eax
cmp eax, esi
jge 0x4d9240
mov eax, dword [esp + 0x3ec]
mov edx, dword [eax + edi*4]
call fcn.004cee3c
mov ecx, eax
cmp ecx, 1
je 0x4d9224
inc edi
cmp edi, esi
jl 0x4d9203
mov edx, dword [esp + 8]
jmp 0x4d923c
sub edi, dword [esp + 0x28]
lea eax, [esi - 1]
add eax, edi
cmp dword [esp + 8], eax
cmovl eax, dword [esp + 8]
mov edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
cmp eax, esi
jl 0x4d91ee
push edx
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
lea ecx, [esp + 0x3ec]
call fcn.0042a773
or edi, 0xffffffff
cmp byte [ebp + 0xc], 0
jne 0x4d9276
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x4dab4b
mov dword [esp + 0x30], 0x15bf
cmp dword [esp + 0x30], 0x1196
jge 0x4d9325
lea eax, [esp + 0x104]
push eax
push 0xac2328
call fcn.004fad78
pop ecx
pop ecx
mov ecx, dword [esp + 0x104]
xor dl, dl
xor esi, esi
mov byte [esp + 0x23], dl
test ecx, ecx
jle 0x4d92ff
lea eax, [esp + 0x378]
push eax
push 0xac2248
call fcn.004fad78
xor eax, eax
inc eax
pop ecx
pop ecx
cmp dword [esp + 0x378], eax
je 0x4d92e2
cmp byte [esp + 0x23], 0
jne 0x4d92f4
mov dl, al
mov byte [esp + 0x23], dl
jmp 0x4d92e6
mov dl, byte [esp + 0x23]
mov ecx, dword [esp + 0x104]
inc esi
cmp esi, ecx
jl 0x4d92b3
jmp 0x4d9302
mov ecx, dword [esp + 0x104]
xor dl, dl
jmp 0x4d9302
xor eax, eax
inc eax
cmp ecx, eax
jne 0x4d930c
test dl, dl
je 0x4d9312
cmp ecx, eax
jle 0x4d9319
cmp dl, al
jne 0x4d9319
mov eax, 0xac22b8
jmp 0x4d931e
mov eax, 0xac22bc
push eax
call fcn.004fb4f7
pop ecx
xor eax, eax
mov dword [esp + 0x10], 0xac64a684
push 2
mov dword [esp + 0xc], eax
pop esi
jmp 0x4d934b
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x544], 5
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x4d9338
mov dword [esp + 0x10], 0xffffffef
jmp 0x4d9375
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4d9371
push eax
push eax
push eax
call dword [0xd0003c]
xor eax, eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe9
jl 0x4d935b
mov dword [esp + 0x10], eax
jmp 0x4d9391
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x544], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x4d9382
push ecx
push 0x2c63
push dword [ebp + 0xc]
lea eax, [esp + 0x340]
mov dl, 1
push ecx
push eax
push ecx
mov ecx, dword [esp + 0xc0]
call fcn.004d264a
lea esi, [esp + 0x34c]
add esp, 0x18
lea edi, [esp + 0x588]
xor eax, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x1c], 0xd491
mov dword [esp + 0x10], eax
jmp 0x4d93f0
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x220], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x4d93dd
push 4
xor edi, edi
mov dword [esp + 0x14], eax
pop edx
inc edi
cmp dword [esp + 0x10], edx
jge 0x4d9418
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x394], edi
inc dword [esp + 0x10]
jmp 0x4d9401
mov ecx, 0xffff
mov dword [esp + 0x224], ecx
cmp dword [esp + 0x1c], eax
je 0x4d9431
mov ecx, dword [esp + 0x394]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
imul esi, ecx
mov ecx, dword [esp + 0x1c]
cmp esi, ecx
setl dl
cmp edx, dword [esp + 0x394]
jne 0x4d951b
mov dword [esp + 0x3c], 0x467b
mov dword [esp + 0x1c], eax
jmp 0x4d950b
mov dword [esp + 0x18], 8
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x398]
mov dword [esp + 0x18], ecx
push 3
pop ecx
mov dword [esp + 0x18], ecx
jmp 0x4d9500
mov dword [esp + 8], eax
mov dword [esp + 8], eax
jmp 0x4d94f5
push 4
pop ecx
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x394], eax
jne 0x4d94fc
mov ecx, dword [esp + 0x394]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x394]
cmp ecx, edx
push 0
pop ecx
setg cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 8]
setl dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
mov ecx, edi
setle dl
sub ecx, edx
mov dword [esp + 0x30], ecx
inc dword [esp + 8]
cmp dword [esp + 8], 0xb
jg 0x4d9499
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x38
jle 0x4d948f
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x35
je 0x4d946f
jmp 0x4d9603
mov dword [esp + 8], 0x2570
mov dword [esp + 0x2c], 0xfffffff7
mov dword [esp + 0x30], 0x1774
cmp dword [esp + 0x30], 0x864
jge 0x4d9598
lea eax, [esp + 0x360]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
mov ecx, dword [esp + 0x360]
mov eax, ecx
and eax, 0x80000001
jns 0x4d9566
dec eax
or eax, 0xfffffffe
inc eax
je 0x4d957c
lea eax, [ecx + 1]
imul eax, eax
push 3
pop ecx
cdq
and edx, ecx
add eax, edx
sar eax, 2
push eax
jmp 0x4d958a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
lea ecx, [eax + 1]
imul ecx, eax
push ecx
push 0xac2258
call fcn.004fb3a8
pop ecx
xor eax, eax
pop ecx
or ecx, 0xffffffff
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x224]
cmp edx, ecx
push 0
pop ecx
setg cl
cmp ecx, dword [esp + 8]
jge 0x4d95cd
cmp dword [esp + 0x224], eax
jne 0x4d95cd
mov ecx, eax
jmp 0x4d95d0
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x220]
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x394]
test eax, eax
mov eax, 0xffff
setle cl
cmp eax, ecx
sbb eax, eax
inc eax
mov dword [esp + 0x30], eax
cmp byte [ebp + 0xc], 0
je 0x4d9a54
cmp dword [esp + 0x33c], 0
je 0x4d9a54
mov dword [esp + 0x14], 0xe2236432
lea ecx, [esp + 0x2e4]
push 1
call fcn.00428b0d
mov dword [esp + 0x10], 0x3bed162c
mov dword [esp + 0x18], 0x45d764ce
mov dword [esp + 0x30], 0x1583
cmp dword [esp + 0x30], 0x7d9
jge 0x4d96f8
lea eax, [esp + 0x144]
push eax
push 0xac2328
call fcn.004fad78
and dword [esp + 0x184], 0
xor eax, eax
and dword [esp + 0x34], 0
xor esi, esi
pop ecx
pop ecx
mov ecx, dword [esp + 0x144]
mov dword [esp + 8], eax
push 0x2c
pop edi
mov edx, edi
mov dword [esp + 0x28], edx
test ecx, ecx
jle 0x4d96df
lea eax, [esp + 0x17c]
push eax
push 0xac2248
call fcn.004fad78
mov eax, dword [esp + 0x184]
pop ecx
pop ecx
cmp eax, dword [esp + 0x2c]
jle 0x4d96bd
mov dword [esp + 8], esi
mov dword [esp + 0x2c], eax
cmp eax, edi
jg 0x4d96cb
mov edx, esi
mov edi, eax
mov dword [esp + 0x28], edx
jmp 0x4d96cf
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x144]
inc esi
cmp esi, ecx
jl 0x4d9694
mov eax, dword [esp + 8]
sub eax, edx
dec eax
add eax, ecx
cmp edx, dword [esp + 8]
jge 0x4d96eb
dec eax
push eax
push 0xac2328
call fcn.004fb3a8
pop ecx
pop ecx
xor eax, eax
mov dword [esp + 8], eax
jmp 0x4d9715
mov edx, dword [esp + 8]
xor edi, edi
mov ecx, dword [esp + 0x2e4]
inc edi
mov dword [ecx + edx*4], edi
inc dword [esp + 8]
xor ecx, ecx
inc ecx
cmp dword [esp + 8], ecx
jl 0x4d9700
cmp dword [esp + 0x14], eax
jne 0x4d98a4
mov dword [esp + 8], 0x2ef51ae9
mov dword [esp + 0x14], 0xfffffff1
jmp 0x4d9894
mov dword [esp + 0x1c], 0xd2d672a8
push 3
mov dword [esp + 0x30], 0xa0cd95f
mov dword [esp + 0x20], eax
pop edx
jmp 0x4d9769
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x2d4], 0xffffffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x4d9756
xor edi, edi
mov dword [esp + 0x1c], eax
inc edi
cmp dword [esp + 0x1c], eax
jg 0x4d97f0
mov dword [esp + 0x30], 0xa228
xor edx, edx
mov dword [esp + 0x2c], 0x498d20b
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2e4]
cmp dword [ecx], edi
mov ecx, dword [esp + 0x30]
setg dl
sub edx, 0x88d9
neg edx
sbb edx, edx
inc edx
add ecx, edx
jne 0x4d97b9
mov ecx, eax
cmp dword [esp + 8], eax
je 0x4d97bb
mov ecx, edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
add ecx, 0xecc2
add ecx, edx
mov dword [esp + 0x2c], ecx
inc dword [esp + 0x1c]
jmp 0x4d9776
mov dword [esp + 0x10], eax
jmp 0x4d9886
mov dword [esp + 0x1c], 0xc746
mov dword [esp + 8], eax
jmp 0x4d987b
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0x2d4]
mov ecx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2e4]
mov esi, dword [ecx + edx*4]
mov edx, dword [esp + 0x30]
sub esi, 0x2dc71837
mov ecx, dword [esp + 0x1c]
add ecx, esi
add edx, ecx
jne 0x4d9866
mov edx, eax
cmp dword [esp + 8], eax
je 0x4d9868
mov edx, edi
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x2d4], edx
mov dword [esp + 0x2c], edx
inc dword [esp + 8]
cmp dword [esp + 8], 2
jle 0x4d9807
inc dword [esp + 0x10]
cmp dword [esp + 0x10], eax
jle 0x4d97f9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x36
jne 0x4d973d
jmp 0x4d9a2c
mov dword [esp + 0x18], 0x10
jmp 0x4d98e7
mov dword [esp + 0x10], eax
jmp 0x4d98dd
mov dword [esp + 0x14], eax
jmp 0x4d98d3
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2e4]
mov dword [ecx + edx*4], 0x36ea
xor ecx, ecx
inc dword [esp + 0x14]
inc ecx
cmp dword [esp + 0x14], ecx
jl 0x4d98ba
inc dword [esp + 0x10]
cmp dword [esp + 0x10], eax
jle 0x4d98b4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x17
jne 0x4d98ae
mov byte [esp + 0xf], al
mov dword [esp + 0x30], 0x1fcf
cmp dword [esp + 0x30], 0xcd9
jge 0x4d9a1c
lea eax, [esp + 0x14c]
mov esi, 0xad3d60
push eax
push ecx
lea eax, [esp + 0x174]
push eax
push ecx
lea eax, [esp + 0x284]
mov ecx, esi
push eax
call fcn.00428021
pop ecx
mov ecx, eax
call fcn.00428021
pop ecx
mov ecx, eax
call fcn.00428021
lea eax, [esp + 0x27c]
push eax
push ecx
lea eax, [esp + 0x28c]
mov ecx, esi
push eax
call fcn.00428021
pop ecx
mov ecx, eax
call fcn.00428021
lea eax, [esp + 0xf8]
push eax
push ecx
lea eax, [esp + 0xc4]
mov ecx, esi
push eax
call fcn.00428021
pop ecx
mov ecx, eax
call fcn.00428021
mov edi, dword [esp + 0x16c]
mov edx, dword [esp + 0x14c]
mov esi, dword [esp + 0x274]
mov ecx, dword [esp + 0xf8]
cmp edi, edx
jle 0x4d99cc
mov eax, esi
neg ecx
sub eax, edi
mov dword [esp + 0xf8], ecx
mov edi, eax
mov eax, esi
sub eax, edx
mov dword [esp + 0x16c], edi
mov edx, eax
mov eax, esi
sub eax, dword [esp + 0xbc]
mov dword [esp + 0x14c], edx
jmp 0x4d99d3
mov eax, dword [esp + 0xbc]
imul ecx, eax
mov dword [esp + 0xbc], ecx
cmp ecx, edi
jle 0x4d99ed
neg esi
lea ecx, [ecx + esi*2]
mov dword [esp + 0xbc], ecx
mov eax, edx
sub edx, ecx
imul edx, dword [esp + 0x284]
sub eax, edi
imul eax, dword [esp + 0x27c]
mov ecx, 0xad3cb8
cmp eax, edx
cmovl edx, eax
push edx
call fcn.0042844a
push eax
call fcn.0042f9e1
pop ecx
xor eax, eax
cmp byte [esp + 0xf], 0
je 0x4d9a2c
push eax
push eax
push eax
call dword [0xd00024]
lea ecx, [esp + 0x2e4]
call fcn.0042a773
mov eax, dword [esp + 0x340]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0x1ac], eax
cmp dword [esp + 0x24], 0
jne 0x4dab4b
cmp dword [esp + 0x334], 0
jle 0x4dab4b
push 2
pop esi
push esi
lea ecx, [esp + 0x4b0]
call fcn.00428b0d
xor eax, eax
mov dword [esp + 0x30], 0x638ecf54
mov dword [esp + 8], eax
jmp 0x4d9aa3
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x4ac]
mov dword [ecx + edx*4], 0xb90d
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x4d9a8d
mov ecx, dword [esp + 0x4ac]
mov ecx, dword [ecx]
mov dword [esp + 0x30], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x4d9ac9
push eax
push eax
push eax
call dword [0xd001d8]
lea ecx, [esp + 0x4ac]
call fcn.0042a773
xor eax, eax
mov dword [esp + 8], 0x9b857552
push 4
mov dword [esp + 0x1c], eax
pop edx
jmp 0x4d9afb
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x4e0], 0x5252cb13
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x4d9ae8
mov ecx, dword [esp + 0x4e0]
cmp ecx, dword [esp + 0x4ec]
jge 0x4d9e32
push 3
mov dword [esp + 0xc], 0x6182eac4
pop esi
mov dword [esp + 8], esi
cmp dword [esp + 8], eax
jl 0x4d9e25
mov dword [esp + 0x30], 0x1632
cmp dword [esp + 0x30], 0x9d5
jge 0x4d9dff
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x54]
push eax
push 0xac230c
call fcn.004fad78
and dword [esp + 0x298], 0
lea eax, [esp + 0x298]
add esp, 0xc
lea ecx, [esp + 0x1cc]
push eax
mov eax, dword [esp + 0x54]
inc eax
push eax
call fcn.00428b88
lea eax, [esp + 0x5b]
mov byte [esp + 0x5b], 0
push eax
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x41c]
inc eax
push eax
call fcn.00429225
and dword [esp + 0x294], 0
lea eax, [esp + 0x294]
push eax
push dword [esp + 0xa4]
lea ecx, [esp + 0x52c]
call fcn.00428b88
mov eax, dword [esp + 0xa0]
xor edi, edi
mov ecx, dword [esp + 0x524]
mov dword [esp + 0x18], ecx
test eax, eax
jle 0x4d9bfb
mov esi, ecx
push esi
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push 4
pop eax
add esi, eax
inc edi
mov eax, dword [esp + 0xa0]
cmp edi, eax
jl 0x4d9bd9
mov ecx, dword [esp + 0x18]
xor edx, edx
inc edx
mov byte [esp + 0x23], dl
mov dword [esp + 0x28], edx
cmp eax, edx
jle 0x4d9ca6
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
mov edi, dword [esp + 0x50]
sub esi, eax
mov dword [esp + 0x30], eax
test esi, esi
jg 0x4d9c23
add esi, edi
mov edi, dword [esp + 0x418]
mov eax, esi
shr eax, 5
mov ecx, esi
mov dword [esp + 0x2c], eax
and ecx, 0x1f
mov eax, edx
mov dword [esp + 0x3c], ecx
shl eax, cl
mov ecx, dword [esp + 0x2c]
test dword [edi + ecx*4], eax
mov edi, dword [esp + 0x50]
je 0x4d9c61
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1cc]
cmp dword [ecx + eax*4], esi
jne 0x4d9d8b
mov ecx, dword [esp + 0x3c]
mov eax, edx
mov edi, dword [esp + 0x418]
shl eax, cl
mov ecx, dword [esp + 0x2c]
push 4
or dword [edi + ecx*4], eax
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x1d0]
mov eax, dword [ecx]
mov dword [edi + eax*4], esi
mov eax, dword [esp + 0x2c]
inc eax
pop esi
add ecx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
cmp eax, dword [esp + 0xa0]
jl 0x4d9c0e
mov edi, dword [esp + 0x50]
xor eax, eax
xor ecx, ecx
and dword [esp + 0x1c8], eax
mov esi, edx
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0xd8], esi
cmp edi, edx
jl 0x4d9d27
xor eax, eax
mov ecx, esi
and ecx, 0x1f
inc eax
mov edx, esi
shl eax, cl
mov ecx, dword [esp + 0x418]
shr edx, 5
test dword [ecx + edx*4], eax
jne 0x4d9d0a
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x1c4]
call fcn.00428c5d
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0xd8]
inc esi
mov dword [esp + 0xd8], esi
cmp esi, edi
jle 0x4d9cd0
mov ecx, dword [esp + 0x1c4]
xor edx, edx
mov eax, dword [esp + 0x1c0]
inc edx
mov esi, edx
cmp edi, edx
jl 0x4d9d7c
mov dword [esp + 0x18], 4
sub dword [esp + 0x18], eax
mov eax, dword [esp + 0x1cc]
cmp dword [eax + esi*4], 0
jg 0x4d9d77
mov eax, dword [esp + 0x18]
add eax, 0xfffffffc
add eax, ecx
sar eax, 2
test eax, eax
je 0x4d9d95
mov edi, dword [esp + 0x1cc]
add ecx, 0xfffffffc
mov dword [esp + 0x1c4], ecx
mov eax, dword [ecx]
mov dword [edi + esi*4], eax
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x1cc]
inc esi
cmp esi, edi
jle 0x4d9d40
mov al, byte [esp + 0x23]
test al, al
jne 0x4d9d99
push 0xac22a4
jmp 0x4d9dc1
mov byte [esp + 0x23], 0
jmp 0x4d9caa
xor al, al
jmp 0x4d9d80
mov esi, edx
cmp edi, edx
jl 0x4d9dbc
mov eax, dword [esp + 0x1cc]
push dword [eax + esi*4]
push 0xac2284
call fcn.004fb3a8
inc esi
pop ecx
pop ecx
cmp esi, dword [esp + 0x50]
jle 0x4d9d9f
push 0xac21b5
call fcn.004fb4f7
pop ecx
lea ecx, [esp + 0x1c0]
call fcn.0042a773
lea ecx, [esp + 0x524]
call fcn.0042a773
and dword [esp + 0x424], 0
lea ecx, [esp + 0x418]
call fcn.0042a773
lea ecx, [esp + 0x1cc]
call fcn.0042a773
mov dword [esp + 0x30], 0xe08cccdd
mov eax, dword [esp + 8]
mov eax, dword [esp + eax*4 + 0x4e0]
mov dword [esp + 0x30], eax
dec dword [esp + 8]
jns 0x4d9b2e
xor eax, eax
push 3
pop esi
mov dword [esp + 8], 0x17
jmp 0x4d9f4e
mov dword [esp + 0x1c], 0x576c5165
mov dword [esp + 0x2c], 0x31c587c7
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 7
jge 0x4d9e8b
xor edi, edi
inc edi
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x2c]
sub edx, ecx
cmp edx, dword [esp + 8]
jl 0x4d9e70
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 8], edi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 7
jl 0x4d9e50
mov dword [esp + 0x1c], 0xa
cmp dword [esp + 0x1c], 6
jge 0x4d9e22
mov ecx, dword [esp + 8]
mov dword [esp + 8], ecx
dec dword [esp + 0x1c]
jmp 0x4d9e93
mov dword [esp + 0x3c], eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4d9f44
mov dword [esp + 0x30], 0x1435
cmp dword [esp + 0x30], 0x69b
jge 0x4d9f3a
push 0xac3384
lea ecx, [esp + 0x564]
call fcn.00427e92
and dword [esp + 0x18c], 0
lea eax, [esp + 0x18c]
push eax
push 0xac2248
call fcn.004fad78
cmp dword [esp + 0x57c], 0x10
lea ecx, [esp + 0x568]
mov eax, dword [esp + 0x194]
cmovae ecx, dword [esp + 0x568]
movsx eax, byte [ecx + eax]
push eax
push 0xac3320
call fcn.004fb3a8
add esp, 0x10
lea ecx, [esp + 0x560]
push 0
push 1
call fcn.0042a139
xor eax, eax
push eax
push eax
call dword [0xd001c4]
xor eax, eax
cmp dword [esp + 0x3c], eax
jne 0x4d9f59
inc dword [esp + 8]
cmp dword [esp + 8], 0x19
jge 0x4d9ea8
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x6fde
mov dword [esp + 8], eax
jmp 0x4d9f86
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x234], 0xf81320f2
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x4d9f73
mov dword [esp + 0x10], eax
jmp 0x4da450
mov dword [esp + 0x30], 0x1f14
cmp dword [esp + 0x30], 0x1106
jge 0x4da198
lea eax, [esp + 0x388]
push eax
lea eax, [esp + 0x58]
push eax
push 0xac230c
call fcn.004fad78
and dword [esp + 0x2a8], 0
lea eax, [esp + 0x2a8]
add esp, 0xc
lea ecx, [esp + 0x464]
push eax
mov eax, dword [esp + 0x58]
inc eax
push eax
call fcn.00428b88
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x37c]
inc eax
push ecx
push eax
lea ecx, [esp + 0x554]
mov dword [esp + 0x384], eax
call fcn.00428b88
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x384]
inc eax
push ecx
push eax
lea ecx, [esp + 0x504]
mov dword [esp + 0x38c], eax
call fcn.00428b88
mov ecx, dword [esp + 0x54]
xor edi, edi
test ecx, ecx
jle 0x4da055
mov esi, dword [esp + 0x464]
push esi
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
mov ecx, dword [esp + 0x54]
inc edi
push 4
pop eax
add esi, eax
cmp edi, ecx
jl 0x4da03a
dec ecx
mov edi, dword [esp + 0x54c]
mov dword [esp + 0x30], edi
js 0x4da091
mov eax, dword [esp + 0x464]
mov esi, edi
mov edi, dword [esp + 0x4fc]
sub esi, eax
lea edx, [eax + ecx*4]
mov eax, dword [edx]
push 4
mov eax, dword [edi + eax*4]
mov dword [esi + edx], eax
mov eax, dword [edx]
mov dword [edi + eax*4], ecx
pop eax
sub edx, eax
dec ecx
jns 0x4da078
mov edi, dword [esp + 0x30]
and dword [esp + 8], 0
lea ecx, [esp + 0x108]
call fcn.004294f3
xor esi, esi
cmp dword [esp + 0x54], esi
jle 0x4da153
lea eax, [esp + 0x38c]
mov dword [esp + 0x38c], esi
push eax
lea ecx, [esp + 0x10c]
call fcn.0042917d
test eax, eax
je 0x4da0ea
lea eax, [esp + 0x278]
mov dword [esp + 0x278], esi
push eax
lea ecx, [esp + 0x10c]
call fcn.00429548
jmp 0x4da0ee
inc dword [esp + 8]
mov eax, dword [esp + 0x10c]
cmp eax, dword [esp + 0x388]
jb 0x4da12e
mov eax, dword [esp + 0x108]
lea ecx, [esp + 0x280]
mov dword [esp + 0x280], eax
call fcn.00430717
lea ecx, [esp + 0x108]
push dword [eax]
lea eax, [esp + 0x4c8]
push eax
call fcn.0042d040
push edi
lea eax, [esp + 0x624]
push eax
lea ecx, [esp + 0x110]
call fcn.00429508
push 4
pop eax
inc esi
add edi, eax
cmp esi, dword [esp + 0x54]
jl 0x4da0ae
push dword [esp + 8]
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
lea ecx, [esp + 0x108]
call fcn.0040c901
lea ecx, [esp + 0x4fc]
call fcn.0042a773
lea ecx, [esp + 0x54c]
call fcn.0042a773
lea ecx, [esp + 0x464]
call fcn.0042a773
push 3
xor eax, eax
pop esi
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
cmp dword [esp + 0x10], eax
mov byte [esp + 0xf], al
jne 0x4da35a
cmp byte [esp + 0xf], 0
je 0x4da36e
mov dword [esp + 0x30], 0x267a
cmp dword [esp + 0x30], 0x896
jge 0x4da34f
lea eax, [esp + 0xcc]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push dword [esp + 0xcc]
lea ecx, [esp + 0x3e4]
call fcn.00428b0d
xor edi, edi
cmp dword [esp + 0xcc], edi
jle 0x4da238
mov esi, dword [esp + 0x3e0]
push esi
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push 4
pop eax
inc edi
add esi, eax
cmp edi, dword [esp + 0xcc]
jl 0x4da21c
lea eax, [esp + 0x94]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
jmp 0x4da32a
dec eax
mov dword [esp + 0x94], eax
lea eax, [esp + 0x270]
push eax
push 0xac224c
call fcn.004fad78
cmp dword [esp + 0x278], 1
pop ecx
pop ecx
jne 0x4da2d9
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0xe4]
push eax
push 0xac230c
call fcn.004fad78
mov ecx, dword [esp + 0xec]
xorps xmm0, xmm0
movlpd qword [esp + 0x4c], xmm0
add esp, 0xc
mov esi, dword [esp + 0x44]
dec ecx
mov edi, dword [esp + 0x40]
cmp ecx, dword [esp + 0x80]
jge 0x4da2c8
mov eax, dword [esp + 0x3e0]
mov eax, dword [eax + ecx*4]
cdq
add edi, eax
adc esi, edx
inc ecx
jmp 0x4da2ad
push esi
push edi
push 0xac2250
call fcn.004fb3a8
add esp, 0xc
jmp 0x4da32a
lea eax, [esp + 0x288]
push eax
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0xe8]
push eax
push 0xac2314
call fcn.004fad78
mov ecx, dword [esp + 0xf0]
add esp, 0x10
dec ecx
cmp ecx, dword [esp + 0x80]
jge 0x4da32a
mov edx, dword [esp + 0x3e0]
mov eax, dword [esp + 0x288]
xor dword [edx + ecx*4], eax
inc ecx
cmp ecx, dword [esp + 0x80]
jl 0x4da316
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x4da251
dec eax
lea ecx, [esp + 0x3e0]
mov dword [esp + 0x94], eax
call fcn.0042a773
xor eax, eax
push eax
push eax
push eax
call dword [0xd00210]
jmp 0x4da36c
cmp byte [esp + 0xf], 0
je 0x4da36e
push eax
push eax
push eax
push eax
push eax
call dword [0xd001f8]
xor eax, eax
mov dword [esp + 8], eax
jmp 0x4da43e
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], eax
jmp 0x4da41a
or ecx, 0xffffffff
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x18], ecx
jne 0x4da3dc
cmp dword [esp + 0x10], eax
jne 0x4da3a3
mov ecx, eax
jmp 0x4da3a6
xor ecx, ecx
inc ecx
mov edx, 0xffff
cmp edx, ecx
sbb esi, esi
neg esi
add esi, dword [esp + 0x18]
neg esi
sbb esi, esi
neg esi
sub esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp ecx, esi
setle dl
cmp edx, 0x8ff7
jl 0x4da3dc
xor edi, edi
inc edi
jmp 0x4da3de
mov edi, eax
mov ecx, dword [esp + 0x18]
xor edx, edx
cmp edi, ecx
setle dl
sub edx, 0xe12f
je 0x4da3f5
mov ecx, dword [esp + 8]
cmp dword [esp + 0x18], eax
jne 0x4da408
cmp dword [esp + 0x238], eax
jne 0x4da408
mov edx, eax
jmp 0x4da40b
xor edx, edx
inc edx
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x234], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x4da388
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4da43a
push eax
push eax
call dword [0xd00048]
xor eax, eax
inc dword [esp + 8]
cmp dword [esp + 8], 0x29
jg 0x4da377
inc dword [esp + 0x10]
push 3
pop esi
cmp dword [esp + 0x10], 6
je 0x4d9f95
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 2
jg 0x4da5f9
mov edi, 0x2c0e
mov dword [esp + 8], 1
lea ecx, [esp + 0x494]
push 1
call fcn.00428b0d
mov dword [esp + 0x28], 0xa74ab722
xor eax, eax
xor esi, esi
mov dword [esp + 0x2c], 0x71ce904
mov dword [esp + 0x18], eax
inc esi
jmp 0x4da4b6
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x494]
mov dword [ecx + edx*4], 0xc717898a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x4da4a0
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x23c], edi
mov ecx, dword [esp + 0x10]
cmp ecx, 0xbf6ce440
mov ecx, dword [esp + 0x14]
setle dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
setne dl
xor ecx, ecx
cmp edx, edi
setge cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x30], ecx
setge dl
xor ecx, ecx
cmp edx, 5
setne cl
sub ecx, dword [esp + 8]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 8], ecx
cmp dword [esp + 8], 0xb150
jge 0x4da546
cmp dword [esp + 0x18], eax
jne 0x4da546
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp esi, ecx
setge dl
mov dword [esp + 0x28], edx
xor edx, edx
mov ecx, dword [esp + 0x14]
cmp ecx, 0x4e46
setl dl
mov dword [esp + 0x234], edx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x494]
cmp dword [ecx], eax
jne 0x4da595
cmp dword [esp + 0x338], 0
je 0x4dab4b
mov dword [esp + 0x10], 0x1f7e2799
mov dword [esp + 0x2c], 0xa95a2e2
mov dword [esp + 0x40], 0xc40b387e
mov dword [esp + 0x10], 0xa
cmp dword [esp + 0x10], 0xffffffe5
jle 0x4daa90
push 4
pop esi
push esi
lea ecx, [esp + 0x3d8]
call fcn.00428b0d
mov dword [esp + 0x14], 0x2edc7555
mov dword [esp + 0x18], 0x8bffbefa
mov dword [esp + 8], 0x6de6eab3
mov dword [esp + 0x40], 0x6068d11a
mov dword [esp + 0x40], 0xfffffffe
push 5
mov dword [esp + 0x44], 0xb55e8a08
pop edx
mov dword [esp + 0x3c], edx
mov dword [esp + 8], 0
jmp 0x4da695
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx*4], edx
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x4da683
push 3
pop eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
jl 0x4da93d
mov ecx, dword [esp + 0x338]
call fcn.004d674e
movdqa xmm0, xmmword [0xac54b0]
lea ecx, [esp + 0x578]
mov esi, eax
lea eax, [esp + 0x588]
push ecx
push eax
push ecx
lea ecx, [esp + 0x4e0]
mov dword [esp + 0x30], esi
movdqu xmmword [esp + 0x584], xmm0
call fcn.00428cfe
xor eax, eax
mov dword [esp + 8], eax
jmp 0x4daae7
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x120], eax
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x4daad8
push 4
mov dword [esp + 0x128], eax
pop edi
jmp 0x4dab16
mov dword [esp + 0x1c], 0x860b4ffb
xor eax, eax
push 3
mov dword [esp + 0xc], 0x91c17854
mov dword [esp + 0x1c], eax
pop edx
jmp 0x4dab79
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0xc0], 0xfffffff8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x4dab66
xor edi, edi
mov dword [esp + 0x1c], eax
inc edi
cmp dword [esp + 0x1c], 2
jg 0x4db363
mov dword [esp + 0x10], 0x33992443
mov dword [esp + 0x14], 0xed55c59c
mov dword [esp + 0x40], 0x2125
mov dword [esp + 0x30], 0x14b8
cmp dword [esp + 0x30], 0xe81
jge 0x4dacbb
lea eax, [esp + 0x9c]
push eax
push 0xac224c
call fcn.004fad78
mov eax, dword [esp + 0xa4]
pop ecx
pop ecx
test eax, eax
je 0x4dacb1
dec eax
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x88]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push dword [esp + 0x88]
lea ecx, [esp + 0x480]
call fcn.00428b0d
and dword [esp + 0x30], 0
cmp dword [esp + 0x88], 0
mov esi, dword [esp + 0x47c]
mov dword [esp + 0x3c], esi
jle 0x4dac51
mov edi, esi
mov esi, dword [esp + 0x30]
push edi
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
push 4
pop eax
inc esi
add edi, eax
cmp esi, dword [esp + 0x88]
jl 0x4dac31
mov esi, dword [esp + 0x3c]
push esi
push dword [esp + 0x484]
call fcn.0042f7cf
xor edx, edx
pop ecx
pop ecx
cmp dword [esp + 0x88], edx
jle 0x4dac86
xor ecx, ecx
inc ecx
cmp dword [esi], ecx
jl 0x4dac86
push 4
pop eax
add esi, eax
mov edx, ecx
inc ecx
lea eax, [ecx - 1]
cmp eax, dword [esp + 0x88]
jl 0x4dac6e
push edx
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
lea ecx, [esp + 0x47c]
call fcn.0042a773
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x4dabe2
xor edi, edi
inc edi
dec eax
mov dword [esp + 0x9c], eax
xor eax, eax
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], eax
jl 0x4db35a
mov dword [esp + 0x30], 0x1ff6
cmp dword [esp + 0x30], 0x788
jge 0x4daf62
lea eax, [esp + 0x64]
push eax
push 0xac2248
call fcn.004fad78
and dword [esp + 0x34c], 0
lea eax, [esp + 0x34c]
pop ecx
pop ecx
push eax
push dword [esp + 0x68]
lea ecx, [esp + 0x5e4]
call fcn.00428b88
push dword [esp + 0x64]
lea ecx, [esp + 0x2f8]
call fcn.004dbab6
push dword [esp + 0x64]
lea ecx, [esp + 0x25c]
call fcn.004dbab6
mov edi, dword [esp + 0x64]
xor ecx, ecx
inc ecx
mov esi, ecx
lea eax, [edi - 1]
imul eax, edi
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jle 0x4dadfd
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x100]
push eax
push 0xac230c
call fcn.004fad78
mov ecx, dword [esp + 0x108]
add esp, 0xc
mov eax, dword [esp + 0xe8]
dec ecx
dec eax
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xe8], eax
mov dword [esp + 0x298], eax
lea eax, [esp + 0x298]
push eax
lea eax, [esp + 0x614]
push eax
mov eax, dword [esp + 0x2fc]
lea ecx, [eax + ecx*8]
call fcn.004760ee
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x258]
mov dword [esp + 0x34c], eax
lea eax, [esp + 0x34c]
push eax
lea eax, [esp + 0x5f4]
push eax
mov eax, dword [esp + 0xf0]
lea ecx, [ecx + eax*8]
call fcn.004760ee
mov edi, dword [esp + 0x64]
inc esi
lea eax, [edi - 1]
imul eax, edi
cdq
sub eax, edx
sar eax, 1
cmp esi, eax
jl 0x4dad50
and dword [esp + 0x18], 0
or eax, 0xffffffff
mov dword [esp + 8], eax
mov edx, eax
mov esi, eax
test edi, edi
jle 0x4dae6a
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x2f4]
add eax, 4
sub ecx, dword [esp + 0x258]
mov dword [esp + 8], eax
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx + eax]
mov eax, dword [eax]
add eax, ecx
lea ecx, [edi - 1]
cmp eax, ecx
mov eax, dword [esp + 0x18]
jae 0x4dae50
test edx, edx
jns 0x4dae4b
mov edx, eax
jmp 0x4dae50
test esi, esi
cmovs esi, eax
add dword [esp + 8], 8
inc eax
mov ecx, dword [esp + 0x30]
cmp eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 8]
jl 0x4dae31
mov dword [esp + 8], edx
xor edi, edi
cmp dword [esp + 0x64], edi
jle 0x4daf22
mov eax, dword [esp + 0x2f4]
lea eax, [eax + edx*8]
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x2a0]
mov dword [esp + 0x2a0], edi
push ecx
mov ecx, eax
call fcn.0042917d
test eax, eax
je 0x4daec0
mov eax, dword [esp + 0x258]
mov dword [esp + 0x354], edi
lea ecx, [eax + esi*8]
lea eax, [esp + 0x354]
push eax
call fcn.0042917d
test eax, eax
jne 0x4daf22
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x258]
mov dword [esp + 0x2b0], edi
lea ecx, [ecx + eax*8]
lea eax, [esp + 0x2b0]
push eax
call fcn.0042917d
test eax, eax
je 0x4daf08
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x35c], edi
lea ecx, [eax + esi*8]
lea eax, [esp + 0x35c]
push eax
call fcn.0042917d
test eax, eax
jne 0x4daf18
inc edi
cmp edi, dword [esp + 0x64]
jge 0x4daf22
mov eax, dword [esp + 0x30]
jmp 0x4dae84
mov eax, dword [esp + 8]
mov dword [esp + 8], esi
mov esi, eax
lea eax, [esi + 1]
push eax
mov eax, dword [esp + 0xc]
inc eax
push eax
push 0xac229c
call fcn.004fb3a8
add esp, 0xc
lea ecx, [esp + 0x258]
call fcn.004dbd9f
lea ecx, [esp + 0x2f4]
call fcn.004dbd9f
lea ecx, [esp + 0x5dc]
call fcn.0042a773
xor edi, edi
xor eax, eax
inc edi
mov dword [esp + 0x18], 0xfaab39e2
mov dword [esp + 0x2c], 0xfcf62392
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
push 0
mov ecx, dword [esp + ecx*4 + 0xc4]
mov ecx, dword [esp + 0x14]
imul edx, dword [esp + ecx*4 + 0xc4], 0x26f3
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0xc4]
cmp ecx, edx
pop ecx
setle cl
mov edx, 0x3153
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0xc0]
sub edx, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x30]
setg cl
xor edx, edx
sub ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x10]
setl dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
setne dl
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], 0xfffffffc
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc8]
imul edx, ecx
cmp edx, dword [esp + 0x10]
jg 0x4db014
mov esi, edi
cmp dword [esp + 0x1c], eax
jne 0x4db016
mov esi, eax
mov ecx, dword [esp + 0x10]
xor edx, edx
push 0
mov ecx, dword [esp + ecx*4 + 0xc4]
cmp ecx, esi
sete dl
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc8]
neg edx
sbb edx, edx
neg edx
cmp edx, ecx
pop ecx
setl cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0xc0]
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x10]
setle dl
mov dword [esp + 0x30], edx
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0xc0]
cmp dword [esp + 0x30], ecx
setle dl
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc0]
cmp dword [esp + 0x10], eax
je 0x4db180
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], eax
jl 0x4db0d0
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4db0ca
push eax
push eax
push eax
push eax
call dword [0xd0005c]
xor eax, eax
dec dword [esp + 0x14]
jns 0x4db0b3
mov dword [esp + 0x30], 0x1926
cmp dword [esp + 0x30], 0x709
jge 0x4db173
lea eax, [esp + 0xb0]
push eax
push 0xac224c
call fcn.004fad78
mov eax, dword [esp + 0xb8]
xor esi, esi
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], ecx
test eax, eax
je 0x4db14d
dec eax
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x2c0]
push eax
push 0xac2248
call fcn.004fad78
cmp dword [esp + 0x2c8], 1
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
jne 0x4db13a
inc esi
jmp 0x4db13f
inc ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0xb0]
test eax, eax
jne 0x4db10d
xor edi, edi
inc edi
dec eax
mov dword [esp + 0xb0], eax
cmp ecx, esi
jg 0x4db166
sub esi, ecx
mov eax, esi
push 3
pop esi
cdq
idiv esi
lea esi, [ecx + eax]
push esi
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
jmp 0x4db34d
mov dword [esp + 0x3c], 0x48991cd3
mov dword [esp + 0x14], eax
jmp 0x4db342
mov dword [esp + 8], 2
cmp dword [esp + 8], eax
jl 0x4db33e
mov dword [esp + 0x18], eax
jmp 0x4db1bc
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x558], 0x1799
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x4db1a9
mov dword [esp + 0x18], eax
jmp 0x4db329
mov dword [esp + 0x28], 0xfffffff6
mov dword [esp + 0x30], 0x17f1
cmp dword [esp + 0x30], 0xac0
jge 0x4db2cd
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
lea ecx, [esp + 0x218]
call fcn.004294f3
lea ecx, [esp + 0x328]
call fcn.004294f3
jmp 0x4db283
and dword [esp + 0x174], 0
dec eax
and dword [esp + 0x15c], 0
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x15c]
push eax
lea eax, [esp + 0x178]
push eax
push 0xac230c
call fcn.004fad78
add esp, 0xc
lea eax, [esp + 0x174]
lea ecx, [esp + 0x218]
push eax
lea eax, [esp + 0x5fc]
push eax
call fcn.00429508
lea eax, [esp + 0x15c]
push eax
lea eax, [esp + 0x634]
push eax
lea ecx, [esp + 0x330]
call fcn.00429508
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x4db219
dec eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x32c]
cmp dword [esp + 0x21c], eax
cmovb eax, dword [esp + 0x21c]
push eax
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
lea ecx, [esp + 0x328]
call fcn.0040c901
lea ecx, [esp + 0x218]
call fcn.0040c901
xor eax, eax
mov dword [esp + 0x2c], 0x817887b3
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
neg esi
mov ecx, dword [esp + 0x18]
sbb esi, esi
neg esi
mov edx, dword [esp + ecx*4 + 0xc0]
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0xc0], edx
mov ecx, dword [esp + 0x28]
add ecx, 0x17a5aa9e
imul ecx, esi
mov dword [esp + 0x28], ecx
cmp edx, dword [esp + 0x28]
je 0x4db31d
cmp dword [esp + 8], eax
jne 0x4db31d
mov ecx, dword [esp + 0x558]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jle 0x4db1cc
dec dword [esp + 8]
jns 0x4db1a3
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x4db191
dec dword [esp + 0x10]
push 0
pop eax
jns 0x4daccd
inc dword [esp + 0x1c]
jmp 0x4dab86
mov eax, dword [esp + 8]
lea ecx, [esp + 0x588]
mov dword [esp + 8], eax
call fcn.004d5cc3
mov esi, dword [esp + 0x24]
test esi, esi
je 0x4db971
mov dword [esp + 0x30], 0x28ade19d
mov dword [esp + 0x40], 0xd45db34e
mov dword [esp + 0x40], 0x15e0
cmp dword [esp + 0x40], 0xdd4
jge 0x4db4c6
lea eax, [esp + 0x164]
push eax
lea eax, [esp + 0x2d4]
push eax
push 0xac230c
call fcn.004fad78
xor esi, esi
xor edi, edi
and dword [esp + 0x34], esi
add esp, 0xc
and dword [esp + 0x3c], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 8], edi
cmp dword [esp + 0x164], esi
jle 0x4db453
lea eax, [esp + 0x184]
push eax
push 0xac224c
call fcn.004fad78
pop ecx
pop ecx
mov ecx, dword [esp + 0x184]
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
add esi, eax
and ecx, 0x80000003
jns 0x4db418
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add edi, eax
and ecx, 0x80000001
jns 0x4db42e
dec ecx
or ecx, 0xfffffffe
inc ecx
mov eax, dword [esp + 0x3c]
add dword [esp + 0x28], ecx
inc eax
mov dword [esp + 0x184], ecx
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x164]
jl 0x4db3e3
mov dword [esp + 0x2c], esi
mov dword [esp + 8], edi
mov ecx, dword [esp + 0x2d0]
xor eax, eax
mov edx, ecx
sub edx, esi
cmp ecx, esi
setl al
inc eax
imul eax, edx
lea esi, [eax + ecx*2]
xor eax, eax
cmp esi, edi
setg al
mov dword [esp + 0x40], eax
mov eax, esi
sub eax, edi
mov edi, dword [esp + 0x40]
imul edi, eax
xor eax, eax
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 8]
setge al
imul eax, edx
add edi, eax
xor eax, eax
cmp ecx, esi
setg al
sub ecx, esi
imul eax, ecx
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*2]
cmp eax, edi
jle 0x4db4b7
mov eax, 0xac22bc
push eax
call fcn.004fb4f7
pop ecx
push 0xac22b8
call fcn.004fb4f7
mov esi, dword [esp + 0x28]
pop ecx
mov dword [esp + 0x40], 1
lea ecx, [esp + 0x4c8]
push 2
call fcn.00428b0d
movdqa xmm0, xmmword [0xac54a0]
lea ecx, [esp + 0x5a8]
push ecx
lea eax, [esp + 0x5bc]
mov dword [esp + 0x44], 0xfffffffa
push eax
push ecx
lea ecx, [esp + 0x4fc]
movdqu xmmword [esp + 0x5b4], xmm0
call fcn.00428cfe
xor ecx, ecx
mov dword [esp + 0x1c], 0
inc ecx
or edi, 0xffffffff
cmp dword [esp + 0x1c], ecx
jge 0x4db537
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x304], edi
inc dword [esp + 0x1c]
jmp 0x4db520
mov dword [esp + 0x1c], 0
jmp 0x4db557
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c8]
mov dword [eax + ecx*4], 0x6b8d9637
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x4db541
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x4f0]
mov dword [esp + 0x304], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4f0]
dec dword [eax + 4]
call fcn.0042a773
lea ecx, [esp + 0x4c8]
call fcn.0042a773
mov edx, dword [esp + 0x4c]
mov ecx, esi
call fcn.004d6d5a
push 4
pop esi
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x3b0]
push esi
mov dword [esp + 0x1a8], eax
call fcn.00428b0d
xor eax, eax
mov dword [esp + 0x4c], 0x26d8f9c3
mov dword [esp + 0x24], eax
jmp 0x4db5df
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3b0]
mov dword [ecx + edx*4], 0xa3df603f
inc dword [esp + 0x24]
cmp dword [esp + 0x24], esi
jl 0x4db5c9
mov dword [esp + 0x18], 0xfffffff8
cmp dword [esp + 0x18], 0x10
jl 0x4db94c
push 3
pop ecx
mov dword [esp + 8], 1
mov dword [esp + 0x3c], 1
mov dword [esp + 8], ecx
cmp dword [esp + 8], eax
jl 0x4db93a
mov dword [esp + 0x1c], 1
mov dword [esp + 0x40], 5
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], eax
jl 0x4db85e
mov dword [esp + 0x30], 0xcef3
mov dword [esp + 0x2c], 0xfffffff9
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4db65b
push eax
call dword [0xd0021c]
xor eax, eax
mov dword [esp + 0x40], 0x1586
cmp dword [esp + 0x40], 0x10ca
jge 0x4db78d
mov dword [esp + 0x138], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x140]
push eax
push 0xac2314
call fcn.004fad78
add esp, 0x10
mov esi, edi
cmp dword [esp + 0x60], 0
mov edi, dword [esp + 0x138]
jle 0x4db6e1
cmp dword [esp + 0x60], edi
jge 0x4db6e1
mov eax, dword [esp + 0x84]
lea ecx, [eax + eax]
mov eax, edi
neg eax
cmp eax, ecx
jge 0x4db77e
cmp ecx, edi
jge 0x4db77e
xor esi, esi
inc esi
jmp 0x4db77e
mov eax, dword [esp + 0x60]
cdq
idiv edi
mov edx, eax
mov ecx, eax
and ecx, 0x80000001
jns 0x4db6f9
dec ecx
or ecx, 0xfffffffe
inc ecx
mov dword [esp + 0x24], ecx
jne 0x4db722
mov ecx, edx
imul ecx, edi
cmp dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x84]
jle 0x4db729
mov eax, edi
neg eax
cmp eax, ecx
jge 0x4db729
test ecx, ecx
jns 0x4db729
imul eax, edx, 3
jmp 0x4db777
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4db755
mov eax, edx
imul eax, edi
cmp dword [esp + 0x60], eax
jle 0x4db751
test ecx, ecx
jle 0x4db751
cmp ecx, edi
jge 0x4db751
imul eax, edx, 3
cdq
sub eax, edx
mov esi, eax
sar esi, 1
inc esi
jmp 0x4db77e
mov eax, dword [esp + 0x24]
cmp eax, 1
jne 0x4db77e
mov eax, edx
imul eax, edi
cmp dword [esp + 0x60], eax
jle 0x4db77e
mov eax, edi
add ecx, ecx
neg eax
cmp eax, ecx
jge 0x4db77e
cmp ecx, edi
jge 0x4db77e
imul eax, edx, 3
inc eax
cdq
sub eax, edx
mov esi, eax
sar esi, 1
push esi
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x1c], eax
jne 0x4db7a5
mov dword [esp + 0x3c], eax
jmp 0x4db7ac
xor edi, edi
inc edi
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x3b0]
mov edi, dword [edx + ecx*4]
neg edi
sub edi, dword [edx + esi*4]
mov edx, dword [esp + 0x2c]
neg edi
sbb edi, edi
imul edx, dword [esp + 0x3c]
inc edi
xor ecx, ecx
sub edx, dword [esp + 0x18]
cmp edi, edx
setne cl
cmp ecx, dword [esp + 0x4c]
jle 0x4db7ec
cmp dword [esp + 0x1c], eax
jne 0x4db7ec
mov edi, eax
jmp 0x4db7ef
xor edi, edi
inc edi
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x3b0]
push 0
mov esi, dword [ecx + edx*4]
xor edx, edx
mov ecx, dword [esp + 0xc]
imul esi, edi
cmp esi, ecx
mov ecx, dword [esp + 0xc]
setle dl
imul edx, edx, 0x1a4e
cmp edx, ecx
pop ecx
setle cl
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
add ecx, dword [esp + 0x18]
je 0x4db836
cmp dword [esp + 0x1c], eax
je 0x4db836
xor ecx, ecx
inc ecx
jmp 0x4db838
mov ecx, eax
imul ecx, ecx, 0x2d83
xor edx, edx
or edi, 0xffffffff
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
cmp ecx, edi
setle dl
mov dword [esp + 0x40], edx
dec dword [esp + 0x1c]
jns 0x4db637
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4db92a
mov dword [esp + 0x40], 0x1e6d
cmp dword [esp + 0x40], 0x11d0
jge 0x4db921
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x14c]
push eax
push 0xac229c
call fcn.004fad78
mov eax, dword [esp + 0x154]
xor edx, edx
add esp, 0xc
mov dword [esp + 0x3c], edx
xor edi, edi
test eax, eax
jle 0x4db912
mov ecx, dword [esp + 0x140]
xor esi, esi
test ecx, ecx
jle 0x4db909
lea eax, [esp + 0x30c]
push eax
lea eax, [esp + 0x2e4]
push eax
push 0xac228c
call fcn.004fad78
add esp, 0xc
cmp dword [esp + 0x2e0], 0
jne 0x4db8f1
cmp dword [esp + 0x30c], 0
je 0x4db8f2
inc edi
mov ecx, dword [esp + 0x140]
inc esi
cmp esi, ecx
jl 0x4db8c0
mov eax, dword [esp + 0x148]
mov edx, dword [esp + 0x3c]
inc edx
mov dword [esp + 0x3c], edx
cmp edx, eax
jl 0x4db8ba
push edi
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
xor eax, eax
push eax
call dword [0xd00044]
xor eax, eax
dec dword [esp + 8]
push 3
pop ecx
push 0xffffffffffffffff
pop edi
jns 0x4db619
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x10
push 0xffffffffffffffff
pop edi
jge 0x4db5fb
lea ecx, [esp + 0x3b0]
call fcn.0042a773
lea eax, [esp + 0x150]
push eax
call fcn.004db9f2
mov ecx, dword [esp + 0x1a4]
xor edi, edi
inc edi
mov dword [eax], ecx
xor eax, eax
mov dword [esp + 0x40], 0x11738ab6
push 3
mov dword [esp + 0x28], eax
pop edx
jmp 0x4db997
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x31c], 5
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edx
jl 0x4db984
mov dword [esp + 0x31c], 0x14
jmp 0x4db9d3
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4db9cc
push eax
push eax
push eax
call dword [0xd00210]
xor eax, eax
inc dword [esp + 0x31c]
cmp dword [esp + 0x31c], 0x16
jge 0x4db9aa
mov eax, dword [ebp + 8]
lea esi, [esp + 0x1a4]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret