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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x50], eax
mov eax, dword [0x5ec348]
mov dword [ebp - 0x1c], eax
xor eax, eax
lea eax, [ebx + 0x6c]
call fcn.004b1110
mov esi, eax
mov eax, dword [ebx + 0xc]
and eax, 0x4a
mov dword [ebp - 0x3c], eax
cmp eax, 0x40
je 0x4df812
mov edi, 0xa
cmp eax, 8
je 0x4df36e
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov dword [ebp - 0x2c], eax
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
jne 0x4df83f
lea ecx, [ebp + 8]
call fcn.004b3f70
movzx ebx, ax
movzx eax, word [esi + 0x70]
cmp ax, bx
je 0x4df310
cmp word [esi + 0x72], bx
je 0x4df310
mov byte [ebp - 0x37], 0
movzx eax, byte [esi + 0x10]
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
test al, al
je 0x4df0be
cmp word [esi + 0x26], bx
je 0x4df630
cmp word [esi + 0x24], bx
je 0x4df630
cmp word [esi + 0x78], bx
je 0x4df3c0
cmp byte [ebp - 0x2c], 0
je 0x4df630
cmp word [esi + 0x74], bx
je 0x4df0ec
cmp word [esi + 0x76], bx
jne 0x4df8eb
mov eax, dword [ebp - 0x3c]
test eax, eax
sete al
cmp edi, 0x10
sete dl
or al, dl
je 0x4df904
mov dword [ebp - 0x34], 0
mov edi, 0x10
mov byte [ebp - 0x2c], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, edx
jae 0x4df410
add eax, 2
mov dword [ecx + 8], eax
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4df438
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4df44a
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete dl
cmp word [ebp + 0x14], 0xffff
sete al
mov byte [ebp - 0x30], al
test ecx, ecx
je 0x4df16b
test al, al
jne 0x4df4f0
cmp byte [ebp - 0x30], dl
jne 0x4df460
mov byte [ebp - 0x35], 1
cmp edi, 0x10
je 0x4df3a3
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x48], edi
lea eax, [ebp - 0x21]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.004ffeb0
cmp byte [esi + 0x10], 0
mov dword [ebp - 0x20], eax
jne 0x4df81c
mov eax, 0xffffffff
xor edx, edx
div dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
movzx eax, byte [esi + 0xa4]
mov byte [ebp - 0x36], al
test al, al
jne 0x4df640
cmp byte [ebp - 0x35], 0
mov byte [ebp - 0x3c], 0
jne 0x4df97e
mov dword [ebp - 0x30], 0
add edi, 0x30
cmp dword [ebp - 0x40], 0xa
ja 0x4df4d0
cmp bx, 0x2f
jbe 0x4df568
cmp bx, di
jae 0x4df568
sub ebx, 0x30
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x44], eax
jb 0x4df4a0
mov edx, dword [ebp - 0x48]
imul eax, edx
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp + 8]
setb al
or byte [ebp - 0x3c], al
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add dword [ebp - 0x34], 1
cmp eax, edx
jae 0x4df4b5
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4df930
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4df8df
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4df27c
test al, al
jne 0x4df608
cmp dl, bl
jne 0x4df520
mov byte [ebp - 0x36], 1
mov edx, dword [ebp - 0x20]
mov edi, dword [edx - 0xc]
test edi, edi
jne 0x4df57a
lea esi, cs:[esi]
nop
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4df5c7
cmp byte [ebp - 0x2c], 1
je 0x4df5c7
mov eax, dword [ebp - 0x50]
mov dword [eax], 0
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
cmp byte [ebp - 0x36], 0
je 0x4df2d3
mov eax, dword [ebp - 0x4c]
or dword [eax], 2
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, 0xffffffff
lock xadd dword [edx - 4], eax
test eax, eax
jle 0x4df855
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
jne 0x4df9cd
lea esp, [ebp - 0xc]
mov eax, esi
mov edx, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
cmp ax, bx
movzx eax, byte [esi + 0x10]
sete byte [ebp - 0x37]
test al, al
jne 0x4df86b
cmp word [esi + 0x24], bx
je 0x4df0a5
mov ecx, dword [ebp + 8]
call fcn.0052e110
mov eax, dword [ebp - 0x2c]
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
lea ecx, [ebp + 8]
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
jne 0x4df949
lea ecx, [ebp + 8]
call fcn.004b3f70
movzx ebx, ax
movzx eax, byte [esi + 0x10]
jmp 0x4df0a5
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov edi, 0x10
mov dword [ebp - 0x2c], eax
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
je 0x4df07b
mov byte [ebp - 0x37], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x48], 0x10
mov edi, 0x16
mov dword [ebp - 0x40], 0x16
jmp 0x4df187
movzx eax, byte [ebp - 0x2c]
xor eax, 1
cmp edi, 0xa
sete dl
or al, dl
je 0x4df0dc
mov edx, dword [ebp - 0x3c]
cmp edi, 8
sete cl
test edx, edx
sete dl
or cl, dl
mov byte [ebp - 0x2c], cl
je 0x4df5f8
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x34], 0
mov edi, 8
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, edx
jb 0x4df126
nop
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x28]
mov edx, dword [ebp - 0x30]
mov eax, 0xffffffff
mov word [ebp + 0xc], ax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
cmp eax, edx
jb 0x4df13d
lea esi, [esi]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp ax, 0xffff
jne 0x4df14a
mov dword [ebp + 8], 0
jmp 0x4df14a
mov ecx, dword [ebp + 8]
mov ebx, 0xffff
test ecx, ecx
je 0x4df485
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4df93c
movzx ebx, word [eax]
cmp bx, 0xffff
je 0x4df8f8
cmp byte [ebp - 0x2c], 0
je 0x4df630
movzx eax, byte [esi + 0x10]
jmp 0x4df0b0
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], 1
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x4df238
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x4df247
lea eax, [ebx - 0x30]
cmp ax, 9
jbe 0x4df203
lea eax, [ebx - 0x61]
cmp ax, 5
ja 0x4df550
sub ebx, 0x57
jmp 0x4df206
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4df8c2
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4df833
cmp ax, 0xffff
sete byte [ebp - 0x30]
jmp 0x4df16b
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4df568
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4df959
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4df1e6
cmp dword [ebp - 0x40], 0xa
mov dword [ebp + 8], 0
jbe 0x4df568
lea esi, [esi]
lea eax, [ebx - 0x41]
cmp ax, 5
ja 0x4df568
sub ebx, 0x37
jmp 0x4df206
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x36], 0
mov edi, dword [edx - 0xc]
test edi, edi
je 0x4df2a0
movsx eax, byte [ebp - 0x34]
lea ebx, [ebp - 0x20]
mov ecx, ebx
mov dword [esp], eax
call fcn.00502270
sub esp, 4
mov dword [esp + 8], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.0054a780
test al, al
je 0x4df89c
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
test ebx, ebx
jne 0x4df5c7
cmp byte [ebp - 0x2c], 1
je 0x4df5c7
mov ecx, dword [edx - 0xc]
test ecx, ecx
je 0x4df2b5
cmp byte [ebp - 0x35], 0
jne 0x4df2b5
cmp byte [ebp - 0x3c], 0
je 0x4df884
mov eax, dword [ebp - 0x50]
mov dword [eax], 0xffffffff
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
jmp 0x4df2c7
add dword [ebp - 0x34], 1
mov byte [ebp - 0x2c], al
jmp 0x4df112
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4df926
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4df8d3
cmp ax, 0xffff
sete dl
jmp 0x4df27c
mov byte [ebp - 0x35], 0
jmp 0x4df178
cmp byte [ebp - 0x35], 0
jne 0x4df995
mov byte [ebp - 0x3c], 0
lea edi, [esi + 0x78]
mov dword [ebp - 0x30], 0
movzx eax, byte [esi + 0x10]
test al, al
je 0x4df66a
cmp word [esi + 0x26], bx
je 0x4df7b0
mov ecx, dword [ebp - 0x40]
cmp word [esi + 0x24], bx
sete al
test ecx, ecx
sete dl
or al, dl
jne 0x4df568
mov edx, ecx
mov eax, edi
mov ecx, dword [ebp - 0x30]
jmp 0x4df69c
add eax, 2
sub edx, 1
je 0x4df7a0
cmp bx, word [eax]
jne 0x4df690
sub eax, edi
mov dword [ebp - 0x30], ecx
mov ebx, ecx
mov ecx, eax
sar ecx, 1
cmp eax, 0x1e
lea edx, [ecx - 6]
mov eax, ecx
cmovg eax, edx
cmp dword [ebp - 0x44], ebx
jb 0x4df768
mov edx, dword [ebp - 0x48]
imul ebx, edx
add eax, ebx
setb dl
add dword [ebp - 0x34], 1
or byte [ebp - 0x3c], dl
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jae 0x4df780
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4df910
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4df8aa
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4df72a
test al, al
jne 0x4df7e0
cmp dl, bl
je 0x4df288
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4df808
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4df972
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4df658
mov dword [ebp + 8], 0
jmp 0x4df658
movzx eax, byte [ebp - 0x36]
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], al
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp eax, edx
jb 0x4df6e6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x4df6f5
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x36], 0
jmp 0x4df288
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x4df966
movsx eax, dl
lea ecx, [ebp - 0x20]
mov dword [esp], eax
call fcn.00502270
mov dword [ebp - 0x34], 0
sub esp, 4
jmp 0x4df6d5
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4df91c
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4df8b6
cmp ax, 0xffff
sete dl
jmp 0x4df72a
mov ebx, 0xffffffff
jmp 0x4df658
mov edi, 8
jmp 0x4df05c
mov dword [esp], 0x20
lea ecx, [ebp - 0x20]
call fcn.00501ed0
sub esp, 4
jmp 0x4df1af
mov dword [ebp + 0x10], 0
jmp 0x4df509
mov byte [ebp - 0x37], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x4df181
lea eax, [ebp - 0x21]
lea ecx, [edx - 0xc]
mov dword [esp], eax
call fcn.00500760
sub esp, 4
jmp 0x4df2eb
cmp word [esi + 0x26], bx
je 0x4df0a5
cmp word [esi + 0x24], bx
je 0x4df0a5
jmp 0x4df32d
mov edi, dword [ebp - 0x30]
mov eax, edi
neg eax
cmp byte [ebp - 0x37], 0
cmove eax, edi
mov edi, dword [ebp - 0x50]
mov dword [edi], eax
jmp 0x4df2c7
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
jmp 0x4df5ac
mov dword [ebp + 8], 0
jmp 0x4df70a
mov dword [ebp + 0x10], 0
jmp 0x4df7f9
mov eax, dword [ecx]
mov byte [ebp - 0x30], dl
call dword [eax + 0x24]
movzx edx, byte [ebp - 0x30]
jmp 0x4df4ff
mov dword [ebp + 0x10], 0
jmp 0x4df621
mov dword [ebp + 8], 0
jmp 0x4df25c
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x2c], 1
jmp 0x4df178
mov dword [ebp + 8], 0
jmp 0x4df485
mov byte [ebp - 0x35], al
mov byte [ebp - 0x2c], 1
jmp 0x4df181
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4df700
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4df7ef
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4df617
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4df252
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4df47b
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x4df178
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4df536
mov byte [ebp - 0x36], 0
mov byte [ebp - 0x35], al
jmp 0x4df288
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ebx, eax
jmp 0x4df74c
movzx eax, byte [ebp - 0x35]
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x36], al
jmp 0x4df288
movzx eax, byte [ebp - 0x35]
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x36], al
mov byte [ebp - 0x35], 0
jmp 0x4df288
mov eax, dword [ebp - 0x20]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x21]
mov dword [esp], eax
call fcn.00500780
push edx
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
je 0x4df9d6
call fcn.00497000
mov ebx, eax
jmp 0x4df9b0
mov dword [esp], ebx
call fcn.00494760
nop
nop
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x50], eax
mov eax, dword [0x5ec348]
mov dword [ebp - 0x1c], eax
xor eax, eax
lea eax, [ebx + 0x6c]
call fcn.004b1110
mov esi, eax
mov eax, dword [ebx + 0xc]
and eax, 0x4a
mov dword [ebp - 0x3c], eax
cmp eax, 0x40
je 0x4e0202
mov edi, 0xa
cmp eax, 8
je 0x4dfd4e
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov dword [ebp - 0x2c], eax
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
jne 0x4e022f
lea ecx, [ebp + 8]
call fcn.004b3f70
movzx ebx, ax
movzx eax, word [esi + 0x70]
cmp ax, bx
je 0x4dfcf0
cmp word [esi + 0x72], bx
je 0x4dfcf0
mov byte [ebp - 0x36], 0
movzx eax, byte [esi + 0x10]
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
test al, al
je 0x4dfa8e
cmp word [esi + 0x26], bx
je 0x4e0010
cmp word [esi + 0x24], bx
je 0x4e0010
cmp word [esi + 0x78], bx
je 0x4dfda0
cmp byte [ebp - 0x2c], 0
je 0x4e0010
cmp word [esi + 0x74], bx
je 0x4dfabc
cmp word [esi + 0x76], bx
jne 0x4e02dd
mov eax, dword [ebp - 0x3c]
test eax, eax
sete al
cmp edi, 0x10
sete dl
or al, dl
je 0x4e02f6
mov dword [ebp - 0x34], 0
mov edi, 0x10
mov byte [ebp - 0x2c], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, edx
jae 0x4dfdf0
add eax, 2
mov dword [ecx + 8], eax
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4dfe18
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4dfe2a
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete dl
cmp word [ebp + 0x14], 0xffff
sete al
mov byte [ebp - 0x30], al
test ecx, ecx
je 0x4dfb3b
test al, al
jne 0x4dfed0
cmp byte [ebp - 0x30], dl
jne 0x4dfe40
mov byte [ebp - 0x35], 1
cmp edi, 0x10
je 0x4dfd83
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x48], edi
lea eax, [ebp - 0x21]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.004ffeb0
cmp byte [esi + 0x10], 0
mov dword [ebp - 0x20], eax
jne 0x4e020c
mov eax, 0xffff
xor edx, edx
idiv dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
movzx eax, byte [esi + 0xa4]
mov byte [ebp - 0x38], al
test al, al
jne 0x4e0020
cmp byte [ebp - 0x35], 0
mov byte [ebp - 0x3c], 0
jne 0x4e0370
xor eax, eax
mov word [ebp - 0x30], ax
lea eax, [edi + 0x30]
mov edi, 0xffff
mov word [ebp - 0x38], ax
cmp dword [ebp - 0x40], 0xa
ja 0x4dfeb0
cmp bx, 0x2f
jbe 0x4dff48
cmp bx, word [ebp - 0x38]
jae 0x4dff48
sub ebx, 0x30
movzx eax, word [ebp - 0x30]
cmp word [ebp - 0x44], ax
jb 0x4dfe80
imul ax, word [ebp - 0x48]
mov edx, edi
sub edx, ebx
movzx ecx, ax
cmp ecx, edx
setg dl
add eax, ebx
mov ebx, dword [ebp + 8]
or byte [ebp - 0x3c], dl
mov word [ebp - 0x30], ax
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add dword [ebp - 0x34], 1
cmp eax, edx
jae 0x4dfe95
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4e0322
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e02d1
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4dfc60
test al, al
jne 0x4dffe8
cmp dl, bl
jne 0x4dff00
mov byte [ebp - 0x38], 1
mov edx, dword [ebp - 0x20]
mov eax, dword [edx - 0xc]
test eax, eax
jne 0x4dff5a
lea esi, [esi]
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4dffa7
cmp byte [ebp - 0x2c], 1
je 0x4dffa7
mov eax, dword [ebp - 0x50]
xor ebx, ebx
mov word [eax], bx
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
cmp byte [ebp - 0x38], 0
je 0x4dfcb2
mov eax, dword [ebp - 0x4c]
or dword [eax], 2
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, 0xffffffff
lock xadd dword [edx - 4], eax
test eax, eax
jle 0x4e0245
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
jne 0x4e03bd
lea esp, [ebp - 0xc]
mov eax, esi
mov edx, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
cmp ax, bx
movzx eax, byte [esi + 0x10]
sete byte [ebp - 0x36]
test al, al
jne 0x4e025b
cmp word [esi + 0x24], bx
je 0x4dfa75
mov ecx, dword [ebp + 8]
call fcn.0052e110
mov eax, dword [ebp - 0x2c]
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
lea ecx, [ebp + 8]
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
jne 0x4e033b
lea ecx, [ebp + 8]
call fcn.004b3f70
movzx ebx, ax
movzx eax, byte [esi + 0x10]
jmp 0x4dfa75
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov edi, 0x10
mov dword [ebp - 0x2c], eax
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
je 0x4dfa4b
mov byte [ebp - 0x36], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x48], 0x10
mov edi, 0x16
mov dword [ebp - 0x40], 0x16
jmp 0x4dfb57
movzx eax, byte [ebp - 0x2c]
xor eax, 1
cmp edi, 0xa
sete dl
or al, dl
je 0x4dfaac
mov edx, dword [ebp - 0x3c]
cmp edi, 8
sete cl
test edx, edx
sete dl
or cl, dl
mov byte [ebp - 0x2c], cl
je 0x4dffd8
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x34], 0
mov edi, 8
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, edx
jb 0x4dfaf6
nop
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x28]
mov edx, dword [ebp - 0x30]
mov eax, 0xffffffff
mov word [ebp + 0xc], ax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
cmp eax, edx
jb 0x4dfb0d
lea esi, [esi]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp ax, 0xffff
jne 0x4dfb1a
mov dword [ebp + 8], 0
jmp 0x4dfb1a
mov ecx, dword [ebp + 8]
mov ebx, 0xffff
test ecx, ecx
je 0x4dfe65
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e032e
movzx ebx, word [eax]
cmp bx, 0xffff
je 0x4e02ea
cmp byte [ebp - 0x2c], 0
je 0x4e0010
movzx eax, byte [esi + 0x10]
jmp 0x4dfa80
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], 1
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x4dfc1c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x4dfc2b
lea eax, [ebx - 0x30]
cmp ax, 9
jbe 0x4dfbdc
lea eax, [ebx - 0x61]
cmp ax, 5
ja 0x4dff30
sub ebx, 0x57
jmp 0x4dfbdf
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e02b4
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e0223
cmp ax, 0xffff
sete byte [ebp - 0x30]
jmp 0x4dfb3b
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4dff48
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e034b
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4dfbbe
cmp dword [ebp - 0x40], 0xa
mov dword [ebp + 8], 0
jbe 0x4dff48
lea esi, [esi]
lea eax, [ebx - 0x41]
cmp ax, 5
ja 0x4dff48
sub ebx, 0x37
jmp 0x4dfbdf
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x38], 0
mov eax, dword [edx - 0xc]
test eax, eax
je 0x4dfc80
movsx eax, byte [ebp - 0x34]
lea ebx, [ebp - 0x20]
mov ecx, ebx
mov dword [esp], eax
call fcn.00502270
sub esp, 4
mov dword [esp + 8], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.0054a780
test al, al
je 0x4e028e
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
test edi, edi
jne 0x4dffa7
cmp byte [ebp - 0x2c], 1
je 0x4dffa7
mov esi, dword [edx - 0xc]
test esi, esi
je 0x4dfc95
cmp byte [ebp - 0x35], 0
jne 0x4dfc95
cmp byte [ebp - 0x3c], 0
je 0x4e0274
mov eax, dword [ebp - 0x50]
mov ecx, 0xffffffff
mov word [eax], cx
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
jmp 0x4dfca6
add dword [ebp - 0x34], 1
mov byte [ebp - 0x2c], al
jmp 0x4dfae2
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e0318
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e02c5
cmp ax, 0xffff
sete dl
jmp 0x4dfc60
mov byte [ebp - 0x35], 0
jmp 0x4dfb48
cmp byte [ebp - 0x35], 0
jne 0x4e0386
xor eax, eax
mov byte [ebp - 0x3c], 0
lea edi, [esi + 0x78]
mov word [ebp - 0x30], ax
movzx eax, byte [esi + 0x10]
test al, al
je 0x4e0049
cmp word [esi + 0x26], bx
je 0x4e01a8
mov ecx, dword [ebp - 0x40]
cmp word [esi + 0x24], bx
sete al
test ecx, ecx
sete dl
or al, dl
jne 0x4dff48
mov edx, ecx
mov eax, edi
movzx ecx, word [ebp - 0x30]
jmp 0x4e007c
add eax, 2
sub edx, 1
je 0x4e0190
cmp bx, word [eax]
jne 0x4e0070
sub eax, edi
mov word [ebp - 0x30], cx
mov ebx, ecx
mov edx, eax
sar edx, 1
cmp eax, 0x1e
lea ecx, [edx - 6]
mov eax, edx
cmovg eax, ecx
cmp word [ebp - 0x44], bx
jb 0x4e0158
imul bx, word [ebp - 0x48]
mov ecx, 0xffff
sub ecx, eax
mov edx, ebx
movzx ebx, bx
cmp ebx, ecx
setg cl
add eax, edx
or byte [ebp - 0x3c], cl
add dword [ebp - 0x34], 1
mov word [ebp - 0x30], ax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jae 0x4e0170
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4e0302
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e029c
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4e011a
test al, al
jne 0x4e01d0
cmp dl, bl
je 0x4dfc6c
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4e01f8
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e0364
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4e0037
mov dword [ebp + 8], 0
jmp 0x4e0037
movzx eax, byte [ebp - 0x38]
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], al
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp eax, edx
jb 0x4e00d6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x4e00e5
mov word [ebp - 0x30], cx
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x38], 0
jmp 0x4dfc6c
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x4e0358
movsx eax, dl
lea ecx, [ebp - 0x20]
mov dword [esp], eax
call fcn.00502270
mov dword [ebp - 0x34], 0
sub esp, 4
jmp 0x4e00c5
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e030e
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e02a8
cmp ax, 0xffff
sete dl
jmp 0x4e011a
mov ebx, 0xffffffff
jmp 0x4e0037
mov edi, 8
jmp 0x4dfa2c
mov dword [esp], 0x20
lea ecx, [ebp - 0x20]
call fcn.00501ed0
sub esp, 4
jmp 0x4dfb7f
mov dword [ebp + 0x10], 0
jmp 0x4dfee9
mov byte [ebp - 0x36], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x4dfb51
lea eax, [ebp - 0x21]
lea ecx, [edx - 0xc]
mov dword [esp], eax
call fcn.00500760
sub esp, 4
jmp 0x4dfcca
cmp word [esi + 0x26], bx
je 0x4dfa75
cmp word [esi + 0x24], bx
je 0x4dfa75
jmp 0x4dfd0d
movzx edi, word [ebp - 0x30]
mov eax, edi
neg eax
cmp byte [ebp - 0x36], 0
cmove eax, edi
mov edi, dword [ebp - 0x50]
mov word [edi], ax
jmp 0x4dfca6
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
jmp 0x4dff8c
mov dword [ebp + 8], 0
jmp 0x4e00fa
mov dword [ebp + 0x10], 0
jmp 0x4e01e9
mov eax, dword [ecx]
mov byte [ebp - 0x30], dl
call dword [eax + 0x24]
movzx edx, byte [ebp - 0x30]
jmp 0x4dfedf
mov dword [ebp + 0x10], 0
jmp 0x4e0001
mov dword [ebp + 8], 0
jmp 0x4dfc40
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x2c], 1
jmp 0x4dfb48
mov dword [ebp + 8], 0
jmp 0x4dfe65
mov byte [ebp - 0x35], al
mov byte [ebp - 0x2c], 1
jmp 0x4dfb51
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4e00f0
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4e01df
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4dfff7
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4dfc36
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4dfe5b
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x4dfb48
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4dff16
mov byte [ebp - 0x38], 0
mov byte [ebp - 0x35], al
jmp 0x4dfc6c
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ebx, eax
jmp 0x4e013c
movzx eax, byte [ebp - 0x35]
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x38], al
xor eax, eax
mov word [ebp - 0x30], ax
jmp 0x4dfc6c
movzx eax, byte [ebp - 0x35]
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x38], al
xor eax, eax
mov word [ebp - 0x30], ax
jmp 0x4dfc6c
mov eax, dword [ebp - 0x20]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x21]
mov dword [esp], eax
call fcn.00500780
push edx
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
je 0x4e03c6
call fcn.00497000
mov ebx, eax
jmp 0x4e03a0
mov dword [esp], ebx
call fcn.00494760
nop
nop
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x60], eax
mov eax, dword [0x5ec348]
mov dword [ebp - 0x1c], eax
xor eax, eax
lea eax, [ebx + 0x6c]
call fcn.004b1110
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0xc]
and eax, 0x4a
mov dword [ebp - 0x40], eax
cmp eax, 0x40
je 0x4e0c89
cmp eax, 8
je 0x4e073f
mov dword [ebp - 0x44], 0xa
lea edi, [ebp + 0x10]
lea ecx, [ebp + 8]
mov dword [esp], edi
call fcn.004b3ed0
mov byte [ebp - 0x2e], al
sub esp, 4
test al, al
jne 0x4e0cce
lea ecx, [ebp + 8]
call fcn.004b3f70
mov esi, dword [ebp - 0x2c]
movzx ebx, ax
movzx eax, word [esi + 0x70]
cmp ax, bx
je 0x4e0c28
cmp word [esi + 0x72], bx
je 0x4e0c28
mov byte [ebp - 0x59], 0
movzx eax, byte [esi + 0x10]
mov dword [ebp - 0x34], 0
mov esi, dword [ebp - 0x44]
mov byte [ebp - 0x2d], 0
test al, al
je 0x4e0487
mov eax, dword [ebp - 0x2c]
cmp word [eax + 0x26], bx
je 0x4e09e8
mov eax, dword [ebp - 0x2c]
cmp word [eax + 0x24], bx
je 0x4e09e8
cmp word [eax + 0x78], bx
je 0x4e0770
cmp byte [ebp - 0x2d], 0
je 0x4e09e8
mov eax, dword [ebp - 0x2c]
cmp word [eax + 0x74], bx
je 0x4e04bb
cmp word [eax + 0x76], bx
jne 0x4e0d7f
mov edi, dword [ebp - 0x40]
test edi, edi
sete al
cmp esi, 0x10
sete dl
or al, dl
je 0x4e0d9b
mov dword [ebp - 0x34], 0
mov esi, 0x10
mov byte [ebp - 0x2d], 0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
cmp eax, edx
jae 0x4e07c0
add eax, 2
mov ecx, 0xffffffff
mov dword [edi + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4e07e0
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e07f1
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete dl
cmp word [ebp + 0x14], 0xffff
sete al
mov edi, eax
test ecx, ecx
je 0x4e0536
test al, al
jne 0x4e0890
mov eax, edi
cmp dl, al
jne 0x4e0800
mov dword [ebp - 0x44], esi
mov byte [ebp - 0x2e], 1
cmp dword [ebp - 0x44], 0x10
je 0x4e09f9
lea esi, [esi]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x38], edi
lea eax, [ebp - 0x21]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.004ffeb0
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 0x10], 0
jne 0x4e0ca1
movzx eax, byte [ebp - 0x59]
xor edx, edx
mov esi, edi
mov dword [ebp - 0x40], esi
add eax, 0xffffffff
adc edx, 0x7fffffff
sar edi, 0x1f
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x3c], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004917f0
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x4c], edx
movzx eax, byte [eax + 0xa4]
mov byte [ebp - 0x30], al
test al, al
jne 0x4e0a18
cmp byte [ebp - 0x2e], 0
mov byte [ebp - 0x2f], 0
jne 0x4e0e18
movzx eax, word [ebp - 0x44]
xor esi, esi
xor edi, edi
add eax, 0x30
mov word [ebp - 0x44], ax
cmp dword [ebp - 0x38], 0xa
ja 0x4e0870
cmp bx, 0x2f
jbe 0x4e0908
cmp bx, word [ebp - 0x44]
jae 0x4e0908
sub ebx, 0x30
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x48], esi
sbb eax, edi
jb 0x4e0840
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
imul eax, edi
mov edi, ebx
imul ecx, esi
sar edi, 0x1f
add ecx, eax
mov eax, esi
mov esi, ebx
mov ebx, dword [ebp - 0x54]
mul dword [ebp - 0x40]
add edx, ecx
mov ecx, dword [ebp - 0x58]
sub ecx, esi
sbb ebx, edi
cmp ecx, eax
mov ecx, ebx
mov ebx, dword [ebp + 8]
sbb ecx, edx
setb cl
or byte [ebp - 0x2f], cl
add esi, eax
mov eax, dword [ebx + 8]
adc edi, edx
mov edx, dword [ebx + 0xc]
add dword [ebp - 0x34], 1
cmp eax, edx
jae 0x4e0855
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4e0dc0
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e0d67
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4e06b3
test al, al
jne 0x4e09c0
cmp dl, bl
jne 0x4e08c0
mov byte [ebp - 0x30], 1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx - 0xc]
test eax, eax
jne 0x4e091a
lea esi, [esi]
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4e096a
cmp byte [ebp - 0x2d], 1
je 0x4e096a
mov eax, dword [ebp - 0x60]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x50]
mov dword [eax], 4
cmp byte [ebp - 0x30], 0
je 0x4e070a
mov eax, dword [ebp - 0x50]
or dword [eax], 2
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, 0xffffffff
lock xadd dword [ecx - 4], eax
test eax, eax
jle 0x4e0cb8
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
jne 0x4e0e61
lea esp, [ebp - 0xc]
mov eax, esi
mov edx, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
lea edi, [ebp + 0x10]
lea ecx, [ebp + 8]
mov dword [esp], edi
call fcn.004b3ed0
mov byte [ebp - 0x2e], al
sub esp, 4
test al, al
jne 0x4e0d28
mov dword [ebp - 0x44], 0x10
jmp 0x4e043b
movzx eax, byte [ebp - 0x2d]
xor eax, 1
cmp esi, 0xa
sete dl
or al, dl
je 0x4e04a8
mov edx, dword [ebp - 0x40]
cmp esi, 8
sete cl
test edx, edx
sete dl
or cl, dl
mov byte [ebp - 0x2d], cl
je 0x4e09b0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x34], 0
mov esi, 8
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
cmp eax, edx
jb 0x4e04f2
lea esi, cs:[esi]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [edi + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [edi + 8]
cmp eax, edx
jb 0x4e0509
nop
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x24]
cmp ax, 0xffff
jne 0x4e0516
mov dword [ebp + 8], 0
jmp 0x4e0516
mov ecx, dword [ebp + 8]
mov ebx, 0xffff
test ecx, ecx
je 0x4e0825
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e0de6
movzx ebx, word [eax]
cmp bx, 0xffff
je 0x4e0d8f
cmp byte [ebp - 0x2d], 0
je 0x4e09e8
mov eax, dword [ebp - 0x2c]
movzx eax, byte [eax + 0x10]
jmp 0x4e0476
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x2f], 1
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x4e066f
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov ecx, 0xffffffff
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], cx
jmp 0x4e067e
lea eax, [ebx - 0x30]
cmp ax, 9
jbe 0x4e0613
lea eax, [ebx - 0x61]
cmp ax, 5
ja 0x4e08f0
sub ebx, 0x57
jmp 0x4e0616
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e0d56
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e0c95
cmp ax, 0xffff
sete al
mov edi, eax
jmp 0x4e0536
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4e0908
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e0df3
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4e05f5
cmp dword [ebp - 0x38], 0xa
mov dword [ebp + 8], 0
jbe 0x4e0908
lea esi, [esi]
lea eax, [ebx - 0x41]
cmp ax, 5
ja 0x4e0908
sub ebx, 0x37
jmp 0x4e0616
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 0x30], 0
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x4e06d0
movsx eax, byte [ebp - 0x34]
lea ebx, [ebp - 0x20]
mov ecx, ebx
mov dword [esp], eax
call fcn.00502270
sub esp, 4
mov dword [esp + 8], ebx
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [edx + 8]
mov dword [esp], eax
call fcn.0054a780
test al, al
je 0x4e0d1a
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
test eax, eax
jne 0x4e096a
cmp byte [ebp - 0x2d], 1
je 0x4e096a
mov ebx, dword [ecx - 0xc]
test ebx, ebx
je 0x4e06e5
cmp byte [ebp - 0x2e], 0
jne 0x4e06e5
cmp byte [ebp - 0x2f], 0
je 0x4e0d00
cmp byte [ebp - 0x59], 0
mov eax, 0xffffffff
mov edx, 0x7fffffff
je 0x4e0995
xor eax, eax
mov edx, 0x80000000
mov edi, dword [ebp - 0x60]
mov dword [edi], eax
mov eax, dword [ebp - 0x50]
mov dword [edi + 4], edx
mov dword [eax], 4
jmp 0x4e06fe
add dword [ebp - 0x34], 1
mov byte [ebp - 0x2d], al
jmp 0x4e04e1
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e0dcc
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e0d73
cmp ax, 0xffff
sete dl
jmp 0x4e06b3
mov dword [ebp - 0x44], esi
cmp dword [ebp - 0x44], 0x10
mov byte [ebp - 0x2e], 0
jne 0x4e0558
mov dword [ebp - 0x38], 0x16
mov edi, 0x10
mov dword [ebp - 0x44], 0x16
jmp 0x4e055e
cmp byte [ebp - 0x2e], 0
jne 0x4e0e2c
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 0x2f], 0
xor esi, esi
xor edi, edi
add eax, 0x78
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x2c]
movzx eax, byte [ecx + 0x10]
test al, al
je 0x4e0a48
cmp word [ecx + 0x26], bx
je 0x4e0bc0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
cmp word [ecx + 0x24], bx
sete al
test edx, edx
sete dl
or al, dl
jne 0x4e0908
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
jmp 0x4e0a7c
add eax, 2
sub edx, 1
je 0x4e0ba8
cmp bx, word [eax]
jne 0x4e0a70
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x44]
sub eax, ecx
mov edx, eax
sar edx, 1
cmp eax, 0x1e
mov eax, dword [ebp - 0x4c]
lea ecx, [edx - 6]
cmovle ecx, edx
cmp dword [ebp - 0x48], esi
sbb eax, edi
jb 0x4e0b70
mov eax, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
imul eax, edi
mov edi, ecx
imul ebx, esi
sar edi, 0x1f
add ebx, eax
mov eax, esi
mov esi, ecx
mov ecx, dword [ebp - 0x58]
mul dword [ebp - 0x40]
add edx, ebx
mov ebx, dword [ebp - 0x54]
sub ecx, esi
sbb ebx, edi
cmp ecx, eax
mov ecx, ebx
sbb ecx, edx
setb cl
or byte [ebp - 0x2f], cl
add esi, eax
adc edi, edx
add dword [ebp - 0x34], 1
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jae 0x4e0b88
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4e0daa
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e0d4a
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4e0b33
test al, al
jne 0x4e0bf0
cmp dl, bl
je 0x4e06bf
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4e0c18
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e0e0c
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4e0a33
mov dword [ebp + 8], 0
jmp 0x4e0a33
movzx eax, byte [ebp - 0x30]
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x2f], al
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp eax, edx
jb 0x4e0aef
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x4e0afe
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x30], 0
jmp 0x4e06bf
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x4e0e00
movsx eax, cl
lea ecx, [ebp - 0x20]
mov dword [esp], eax
call fcn.00502270
mov dword [ebp - 0x34], 0
sub esp, 4
jmp 0x4e0ade
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e0db6
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e0d3e
cmp ax, 0xffff
sete dl
jmp 0x4e0b33
mov ebx, 0xffffffff
jmp 0x4e0a33
mov esi, dword [ebp - 0x2c]
cmp ax, bx
sete byte [ebp - 0x59]
movzx eax, byte [esi + 0x10]
test al, al
jne 0x4e0ce4
mov esi, dword [ebp - 0x2c]
cmp word [esi + 0x24], bx
je 0x4e0468
mov ecx, dword [ebp + 8]
call fcn.0052e110
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
lea ecx, [ebp + 8]
mov dword [esp], edi
call fcn.004b3ed0
mov byte [ebp - 0x2e], al
sub esp, 4
test al, al
jne 0x4e0dd6
lea ecx, [ebp + 8]
call fcn.004b3f70
movzx ebx, ax
movzx eax, byte [esi + 0x10]
jmp 0x4e0468
mov dword [ebp - 0x44], 8
jmp 0x4e041f
mov dword [ebp + 0x10], 0
jmp 0x4e08a9
mov dword [esp], 0x20
lea ecx, [ebp - 0x20]
call fcn.00501ed0
sub esp, 4
jmp 0x4e0589
lea eax, [ebp - 0x21]
sub ecx, 0xc
mov dword [esp], eax
call fcn.00500760
sub esp, 4
jmp 0x4e0722
mov byte [ebp - 0x59], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2d], 0
jmp 0x4e0558
cmp word [esi + 0x26], bx
je 0x4e0468
mov esi, dword [ebp - 0x2c]
cmp word [esi + 0x24], bx
je 0x4e0468
jmp 0x4e0c4b
cmp byte [ebp - 0x59], 0
je 0x4e0d0d
neg esi
adc edi, 0
neg edi
mov eax, dword [ebp - 0x60]
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x4e06fe
mov eax, dword [ebp - 0x50]
mov dword [eax], 4
jmp 0x4e094f
mov byte [ebp - 0x59], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2d], 0
jmp 0x4e09f9
mov dword [ebp + 0x10], 0
jmp 0x4e0c09
mov dword [ebp + 8], 0
jmp 0x4e0b13
mov eax, dword [ecx]
mov byte [ebp - 0x38], dl
call dword [eax + 0x24]
movzx edx, byte [ebp - 0x38]
jmp 0x4e089f
mov dword [ebp + 8], 0
jmp 0x4e0693
mov dword [ebp + 0x10], 0
jmp 0x4e09d9
mov dword [ebp - 0x44], esi
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x2d], 1
jmp 0x4e0547
mov dword [ebp + 8], 0
jmp 0x4e0825
mov dword [ebp - 0x44], esi
mov byte [ebp - 0x2e], al
mov byte [ebp - 0x2d], 1
jmp 0x4e0558
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4e0b09
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4e0bff
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4e0689
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4e09cf
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2d], 0
jmp 0x4e0547
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4e081b
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4e08d6
mov byte [ebp - 0x30], 0
mov byte [ebp - 0x2e], al
jmp 0x4e06bf
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ebx, eax
jmp 0x4e0b55
movzx eax, byte [ebp - 0x2e]
xor esi, esi
mov byte [ebp - 0x2e], 0
xor edi, edi
mov byte [ebp - 0x30], al
jmp 0x4e06bf
movzx eax, byte [ebp - 0x2e]
mov byte [ebp - 0x2f], 0
xor esi, esi
xor edi, edi
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x30], al
jmp 0x4e06bf
mov eax, dword [ebp - 0x20]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x21]
mov dword [esp], eax
call fcn.00500780
push edx
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
je 0x4e0e6a
call fcn.00497000
mov ebx, eax
jmp 0x4e0e44
mov dword [esp], ebx
call fcn.00494760
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x60], eax
mov eax, dword [0x5ec348]
mov dword [ebp - 0x1c], eax
xor eax, eax
lea eax, [ebx + 0x6c]
call fcn.004b1110
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0xc]
and eax, 0x4a
mov dword [ebp - 0x38], eax
cmp eax, 0x40
je 0x4e1752
mov esi, 0xa
cmp eax, 8
je 0x4e1254
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov dword [ebp - 0x30], eax
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x39], al
sub esp, 4
test al, al
jne 0x4e177f
lea ecx, [ebp + 8]
call fcn.004b3f70
mov edi, dword [ebp - 0x2c]
movzx ebx, ax
movzx eax, word [edi + 0x70]
cmp ax, bx
je 0x4e11f0
cmp word [edi + 0x72], bx
je 0x4e11f0
mov byte [ebp - 0x61], 0
movzx eax, byte [edi + 0x10]
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x30], 0
test al, al
je 0x4e0f35
mov eax, dword [ebp - 0x2c]
cmp word [eax + 0x26], bx
je 0x4e1510
mov eax, dword [ebp - 0x2c]
cmp word [eax + 0x24], bx
je 0x4e1510
cmp word [eax + 0x78], bx
je 0x4e12a0
cmp byte [ebp - 0x30], 0
je 0x4e1510
mov eax, dword [ebp - 0x2c]
cmp word [eax + 0x74], bx
je 0x4e0f69
cmp word [eax + 0x76], bx
jne 0x4e1834
mov edi, dword [ebp - 0x38]
test edi, edi
sete al
cmp esi, 0x10
sete dl
or al, dl
je 0x4e184d
mov dword [ebp - 0x40], 0
mov esi, 0x10
mov byte [ebp - 0x30], 0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
cmp eax, edx
jae 0x4e12f0
add eax, 2
mov ecx, 0xffffffff
mov dword [edi + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4e1310
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e1321
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete dl
cmp word [ebp + 0x14], 0xffff
sete al
mov edi, eax
test ecx, ecx
je 0x4e0fe4
test al, al
jne 0x4e13c0
mov eax, edi
cmp al, dl
jne 0x4e1330
mov byte [ebp - 0x39], 1
cmp esi, 0x10
je 0x4e1289
mov dword [ebp - 0x4c], esi
mov edi, esi
lea eax, [ebp - 0x21]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.004ffeb0
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 0x10], 0
jne 0x4e175c
mov eax, edi
mov dword [ebp - 0x48], edi
cdq
mov dword [ebp - 0x44], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
call fcn.004917f0
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x54], edx
movzx eax, byte [eax + 0xa4]
mov byte [ebp - 0x3c], al
test al, al
jne 0x4e1520
movzx eax, byte [ebp - 0x39]
mov byte [ebp - 0x3a], 0
test al, al
jne 0x4e18bb
lea eax, [esi + 0x30]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov word [ebp - 0x3c], ax
cmp dword [ebp - 0x4c], 0xa
ja 0x4e13a0
cmp bx, 0x2f
jbe 0x4e1438
cmp bx, word [ebp - 0x3c]
jae 0x4e1438
sub ebx, 0x30
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x50], eax
sbb esi, edx
jb 0x4e1370
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x48]
xor edi, edi
imul ecx, eax
mov eax, edx
imul eax, esi
add ecx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], ebx
sar ebx, 0x1f
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 0x38]
mul esi
mov esi, dword [ebp - 0x34]
add edx, ecx
xor ecx, ecx
add ebx, eax
adc esi, edx
jb 0x4e1911
or ecx, edi
mov ebx, dword [ebp + 8]
setne cl
or byte [ebp - 0x3a], cl
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
add dword [ebp - 0x40], 1
cmp eax, edx
jae 0x4e1385
add eax, 2
mov edi, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], di
cmp eax, edx
jae 0x4e1879
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e181c
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4e1166
test al, al
jne 0x4e14e8
cmp dl, bl
jne 0x4e13f0
mov byte [ebp - 0x3c], 1
mov edx, dword [ebp - 0x20]
mov esi, dword [edx - 0xc]
test esi, esi
jne 0x4e144a
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x4e149a
cmp byte [ebp - 0x30], 1
je 0x4e149a
mov eax, dword [ebp - 0x60]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x5c]
mov dword [eax], 4
cmp byte [ebp - 0x3c], 0
je 0x4e11ba
mov eax, dword [ebp - 0x5c]
or dword [eax], 2
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, 0xffffffff
lock xadd dword [edx - 4], eax
test eax, eax
jle 0x4e1795
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
jne 0x4e1938
lea esp, [ebp - 0xc]
mov eax, esi
mov edx, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
mov edi, dword [ebp - 0x2c]
cmp ax, bx
sete byte [ebp - 0x61]
movzx eax, byte [edi + 0x10]
test al, al
jne 0x4e17ab
mov edi, dword [ebp - 0x2c]
cmp word [edi + 0x24], bx
je 0x4e0f19
mov ecx, dword [ebp + 8]
call fcn.0052e110
mov eax, dword [ebp - 0x30]
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
lea ecx, [ebp + 8]
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x39], al
sub esp, 4
test al, al
jne 0x4e1892
lea ecx, [ebp + 8]
call fcn.004b3f70
movzx ebx, ax
movzx eax, byte [edi + 0x10]
jmp 0x4e0f19
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov esi, 0x10
mov dword [ebp - 0x30], eax
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x39], al
sub esp, 4
test al, al
je 0x4e0eec
mov byte [ebp - 0x61], 0
xor ebx, ebx
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x30], 0
mov dword [ebp - 0x4c], 0x16
mov edi, 0x10
mov esi, 0x16
jmp 0x4e1000
movzx eax, byte [ebp - 0x30]
xor eax, 1
cmp esi, 0xa
sete dl
or al, dl
je 0x4e0f56
mov edx, dword [ebp - 0x38]
cmp esi, 8
sete cl
test edx, edx
sete dl
or cl, dl
mov byte [ebp - 0x30], cl
je 0x4e14d8
mov edi, dword [ebp + 8]
mov dword [ebp - 0x40], 0
mov esi, 8
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
cmp eax, edx
jb 0x4e0fa0
lea esi, cs:[esi]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [edi + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [edi + 8]
cmp eax, edx
jb 0x4e0fb7
nop
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x24]
cmp ax, 0xffff
jne 0x4e0fc4
mov dword [ebp + 8], 0
jmp 0x4e0fc4
mov ecx, dword [ebp + 8]
mov ebx, 0xffff
test ecx, ecx
je 0x4e1355
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e1885
movzx ebx, word [eax]
cmp bx, 0xffff
je 0x4e1841
cmp byte [ebp - 0x30], 0
je 0x4e1510
mov eax, dword [ebp - 0x2c]
movzx eax, byte [eax + 0x10]
jmp 0x4e0f24
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3a], 1
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x4e1122
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov esi, 0xffffffff
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], si
jmp 0x4e1131
lea eax, [ebx - 0x30]
cmp ax, 9
jbe 0x4e10ae
lea eax, [ebx - 0x61]
cmp ax, 5
ja 0x4e1420
sub ebx, 0x57
jmp 0x4e10b1
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e180b
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e1773
cmp ax, 0xffff
sete al
mov edi, eax
jmp 0x4e0fe4
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4e1438
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e18a2
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4e1090
cmp dword [ebp - 0x4c], 0xa
mov dword [ebp + 8], 0
jbe 0x4e1438
lea esi, [esi]
lea eax, [ebx - 0x41]
cmp ax, 5
ja 0x4e1438
sub ebx, 0x37
jmp 0x4e10b1
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x3c], 0
mov esi, dword [edx - 0xc]
test esi, esi
je 0x4e1180
movsx eax, byte [ebp - 0x40]
lea ebx, [ebp - 0x20]
mov ecx, ebx
mov dword [esp], eax
call fcn.00502270
sub esp, 4
mov dword [esp + 8], ebx
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.0054a780
test al, al
je 0x4e17e5
mov ebx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x20]
test ebx, ebx
jne 0x4e149a
cmp byte [ebp - 0x30], 1
je 0x4e149a
mov ecx, dword [edx - 0xc]
test ecx, ecx
je 0x4e1195
movzx eax, byte [ebp - 0x39]
test al, al
jne 0x4e1195
cmp byte [ebp - 0x3a], 0
jne 0x4e17c7
cmp byte [ebp - 0x61], 0
je 0x4e14c0
neg dword [ebp - 0x38]
adc dword [ebp - 0x34], 0
neg dword [ebp - 0x34]
mov eax, dword [ebp - 0x60]
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x34]
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x4e11ae
add dword [ebp - 0x40], 1
mov byte [ebp - 0x30], al
jmp 0x4e0f8f
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e186f
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e1828
cmp ax, 0xffff
sete dl
jmp 0x4e1166
mov byte [ebp - 0x39], 0
jmp 0x4e0ff2
movzx eax, byte [ebp - 0x39]
test al, al
jne 0x4e18e5
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 0x3a], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
lea esi, [eax + 0x78]
mov ecx, dword [ebp - 0x2c]
movzx eax, byte [ecx + 0x10]
test al, al
je 0x4e1559
cmp word [ecx + 0x26], bx
je 0x4e16f0
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x4c]
cmp word [ecx + 0x24], bx
sete al
test edi, edi
sete dl
or al, dl
jne 0x4e1438
mov edx, edi
mov eax, esi
movzx edi, byte [ebp - 0x39]
jmp 0x4e158c
add eax, 2
sub edx, 1
je 0x4e16d8
cmp bx, word [eax]
jne 0x4e1580
mov edx, edi
sub eax, esi
mov dword [ebp - 0x2c], ecx
mov edi, dword [ebp - 0x54]
mov byte [ebp - 0x39], dl
mov edx, eax
sar edx, 1
cmp eax, 0x1e
mov eax, dword [ebp - 0x38]
lea ecx, [edx - 6]
cmovle ecx, edx
mov edx, dword [ebp - 0x34]
cmp dword [ebp - 0x50], eax
sbb edi, edx
jb 0x4e16a0
mov ebx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
mov dword [ebp - 0x58], 0
imul ebx, eax
mov eax, edx
imul eax, edi
add ebx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], ecx
mul edi
xor edi, edi
add edx, ebx
mov ebx, ecx
sar ebx, 0x1f
add ecx, eax
mov dword [ebp - 0x34], ebx
adc ebx, edx
jb 0x4e1907
mov ecx, edi
xor ebx, ebx
or ecx, ebx
setne cl
or byte [ebp - 0x3a], cl
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add dword [ebp - 0x40], 1
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jae 0x4e16b8
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4e1859
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e17ff
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4e1662
test al, al
jne 0x4e1720
cmp dl, bl
je 0x4e1172
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4e1748
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e18d9
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4e1544
mov dword [ebp + 8], 0
jmp 0x4e1544
movzx eax, byte [ebp - 0x3c]
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3a], al
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp eax, edx
jb 0x4e161e
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov edi, 0xffffffff
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], di
jmp 0x4e162d
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x39], 0
mov byte [ebp - 0x3c], 0
jmp 0x4e1172
mov edi, dword [ebp - 0x40]
test edi, edi
je 0x4e18af
mov eax, edi
lea ecx, [ebp - 0x20]
movsx eax, al
mov dword [esp], eax
call fcn.00502270
mov dword [ebp - 0x40], 0
sub esp, 4
jmp 0x4e160d
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4e1865
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4e17f3
cmp ax, 0xffff
sete dl
jmp 0x4e1662
mov ebx, 0xffffffff
jmp 0x4e1544
mov esi, 8
jmp 0x4e0ecd
mov dword [esp], 0x20
lea ecx, [ebp - 0x20]
call fcn.00501ed0
sub esp, 4
jmp 0x4e102b
mov dword [ebp + 0x10], 0
jmp 0x4e13d9
mov byte [ebp - 0x61], 0
xor ebx, ebx
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x30], 0
jmp 0x4e0ffb
lea eax, [ebp - 0x21]
lea ecx, [edx - 0xc]
mov dword [esp], eax
call fcn.00500760
sub esp, 4
jmp 0x4e11d2
cmp word [edi + 0x26], bx
je 0x4e0f19
mov edi, dword [ebp - 0x2c]
cmp word [edi + 0x24], bx
je 0x4e0f19
jmp 0x4e1213
mov eax, dword [ebp - 0x60]
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
mov eax, dword [ebp - 0x5c]
mov dword [eax], 4
jmp 0x4e11ae
mov eax, dword [ebp - 0x5c]
mov dword [eax], 4
jmp 0x4e147f
mov dword [ebp + 0x10], 0
jmp 0x4e1739
mov dword [ebp + 8], 0
jmp 0x4e1642
mov eax, dword [ecx]
mov byte [ebp - 0x39], dl
call dword [eax + 0x24]
movzx edx, byte [ebp - 0x39]
jmp 0x4e13cf
mov dword [ebp + 8], 0
jmp 0x4e1146
mov dword [ebp + 0x10], 0
jmp 0x4e1501
mov byte [ebp - 0x39], 0
mov byte [ebp - 0x30], 1
jmp 0x4e0ff2
mov dword [ebp + 8], 0
jmp 0x4e1355
mov byte [ebp - 0x39], al
mov byte [ebp - 0x30], 1
jmp 0x4e0ffb
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4e1638
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4e172f
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4e14f7
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4e113c
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4e134b
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x30], 0
jmp 0x4e0ff2
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4e1406
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x39], al
jmp 0x4e1172
movzx eax, byte [ebp - 0x39]
mov dword [ebp - 0x38], 0
mov byte [ebp - 0x39], 0
mov byte [ebp - 0x3c], al
mov dword [ebp - 0x34], 0
jmp 0x4e1172
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ebx, eax
jmp 0x4e1684
movzx eax, byte [ebp - 0x39]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x3a], 0
mov byte [ebp - 0x39], 0
jmp 0x4e1172
mov edi, 1
jmp 0x4e15f1
mov ecx, 1
jmp 0x4e10f9
mov eax, dword [ebp - 0x20]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x21]
mov dword [esp], eax
call fcn.00500780
push edx
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
je 0x4e1941
call fcn.00497000
mov ebx, eax
jmp 0x4e191b
mov dword [esp], ebx
call fcn.00494760
nop
nop
nop
nop
nop
nop
nop