Function at 0x5180a0
Capabilities:
Check for software breakpoints
Inspect section memory permissions

Disassembly:
mov edx, dword [esp + 8]
sub esp, 8
push ebx
push ebp
push esi
xor ebx, ebx
push edi
cmp edx, 0xd2
jg 0x5191fc
je 0x5191da
lea eax, [edx - 3]
cmp eax, 0xcc
ja case.0x51adf6.30118
movzx eax, byte [eax + 0x51b054]
jmp dword [eax*4 + 0x51af08]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jl 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x8e0], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0xa64], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
pop edi
pop esi
cmp dword [eax], ecx
mov eax, dword [edx + 0xa9c]
setne cl
and eax, 0xfffffffe
or ecx, eax
mov eax, ebx
pop ebp
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffffd
and ecx, 2
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xbfffffff
and ecx, 0x40000000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfdffffff
and ecx, 0x2000000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
pop edi
mov edx, dword [eax]
mov eax, dword [esi + 0xa98]
neg edx
mov ecx, dword [esi + 0xaec]
sbb edx, edx
and eax, 0xfff7ffff
and edx, 0x80000
or edx, eax
mov eax, ecx
and eax, 0xffffffef
mov dword [esi + 0xa98], edx
or ecx, 0x10
and edx, 0x80000
cmove ecx, eax
mov eax, ebx
mov dword [esi + 0xaec], ecx
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xefffffff
and ecx, 0x10000000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffefffff
and ecx, 0x100000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
sbb ecx, ecx
and eax, 0xdfffffff
and ecx, 0x20000000
or ecx, eax
mov dword [edx + 0xa98], ecx
test ecx, 0x20000000
je 0x5182d8
pop edi
and ecx, 0xefffffff
mov eax, 5
pop esi
mov dword [edx + 0xa98], ecx
mov dword [edx + 0x828], eax
mov eax, ebx
pop ebp
pop ebx
add esp, 8
ret
pop edi
mov eax, 1
pop esi
mov dword [edx + 0x828], eax
mov eax, ebx
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffdff
and ecx, 0x200
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
js 0x51aed2
cmp eax, 0x20c49b
jg 0x51aed2
imul ecx, eax, 0x3e8
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x648], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x650], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 2
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x918], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffff7ff
and ecx, 0x800
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 3
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x81c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
mov eax, dword [eax]
cdq
mov dword [ecx + 0x820], eax
mov eax, ebx
pop ebp
mov dword [ecx + 0x824], edx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xf7ffffff
and ecx, 0x8000000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xff7fffff
and ecx, 0x800000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffbfffff
and ecx, 0x400000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfeffffff
and ecx, 0x1000000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jl 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x5c4], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
and ecx, 7
pop edi
pop esi
pop ebp
mov dword [eax + 0x5c8], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
cmp dword [eax], ebx
je 0x518552
and dword [ecx + 0xa98], 0xefffffff
mov eax, 2
pop edi
pop esi
mov dword [ecx + 0x828], eax
mov eax, ebx
pop ebp
pop ebx
add esp, 8
ret
pop edi
mov eax, 1
pop esi
mov dword [ecx + 0x828], eax
mov eax, ebx
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
cdq
mov edi, eax
mov ebp, edx
cmp ebp, 0xffffffff
jl 0x51aed2
jg 0x518586
cmp edi, 0xffffffff
jb 0x51aed2
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x5dc], ebp
jg 0x5185c0
jl 0x51859c
cmp dword [esi + 0x5d8], edi
jae 0x5185c0
mov eax, dword [esi + 0xa2c]
cmp dword [esi + 0x5cc], eax
jne 0x5185c0
push eax
call dword [0x6412b4]
mov dword [esi + 0xa2c], ebx
add esp, 4
mov dword [esi + 0x5cc], ebx
mov dword [esi + 0x5d8], edi
mov eax, ebx
pop edi
mov dword [esi + 0x5dc], ebp
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffffffdf
and ecx, 0x20
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
cmp dword [eax], ebx
je case.0x5180d4.91
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
and dword [eax + 0xa98], 0xcfffffff
mov dword [eax + 0x828], 1
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 3
jl 0x518650
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x82c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
test edx, edx
jne 0x518682
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x5b4], ebx
mov eax, ebx
pop ebx
add esp, 8
ret
mov esi, dword [esp + 0x1c]
mov eax, edx
shr eax, 4
movzx eax, al
shl eax, 2
xor eax, dword [esi + 0xcec]
and eax, 4
xor dword [esi + 0xcec], eax
test dl, 0x10
je 0x5186ab
and edx, 0xffffffef
or edx, 2
and edx, 0xffffffdf
xor ecx, ecx
mov eax, 1
shl eax, cl
inc ecx
and eax, edx
jne 0x5186ce
cmp ecx, 0x1f
jl 0x5186b0
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 8
ret
pop edi
mov dword [esi + 0x5b4], edx
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffbff
and ecx, 0x400
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 0xffff
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x59c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
test edx, edx
jne 0x51875b
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x5b8], ebx
mov eax, ebx
pop ebx
add esp, 8
ret
mov esi, dword [esp + 0x1c]
mov eax, edx
shr eax, 4
movzx eax, al
shl eax, 2
xor eax, dword [esi + 0xcfc]
and eax, 4
xor dword [esi + 0xcfc], eax
test dl, 0x10
je 0x518784
and edx, 0xffffffef
or edx, 2
and edx, 0xffffffdf
xor ecx, ecx
nop dword [eax]
mov eax, 1
shl eax, cl
inc ecx
and eax, edx
jne 0x5187ae
cmp ecx, 0x1f
jl 0x518790
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 8
ret
pop edi
mov dword [esi + 0x5b8], edx
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 7
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x8dc], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
sub eax, 0
je 0x518815
sub eax, 1
jne case.0x51adf6.30118
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
or dword [eax + 0xa9c], 0x100
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
and dword [eax + 0xa9c], 0xfffffeff
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffdff
and ecx, 0x200
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffffdfff
and ecx, 0x2000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffffefff
and ecx, 0x1000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 3
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x900], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffeffff
and ecx, 0x10000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffff7fff
and ecx, 0x8000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffdffff
and ecx, 0x20000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 2
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x908], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffbffff
and ecx, 0x40000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 2
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x904], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
sub eax, 0
je 0x518a4e
sub eax, 1
je 0x518a36
sub eax, 1
jne case.0x51adf6.30118
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x90c], 2
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x90c], 1
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x90c], ebx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
cmp eax, 0xffffffff
jl 0x51aed2
mov ecx, dword [esp + 0x1c]
pop edi
cdq
pop esi
mov dword [ecx + 0x658], eax
mov eax, ebx
pop ebp
mov dword [ecx + 0x65c], edx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x660], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x664], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 0xffff
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x5b0], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
js 0x51aed2
cmp eax, 0x20c49b
jg 0x51aed2
imul ecx, eax, 0x3e8
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x638], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x638], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
js 0x51aed2
cmp eax, 0x20c49b
jg 0x51aed2
imul ecx, eax, 0x3e8
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x63c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x63c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
cmp eax, 0xffffffff
jl 0x51aed2
mov ecx, dword [esp + 0x1c]
pop edi
cdq
pop esi
mov dword [ecx + 0x678], eax
mov eax, ebx
pop ebp
mov dword [ecx + 0x67c], edx
pop ebx
add esp, 8
ret
mov esi, dword [esp + 0x1c]
push dword [esi + 0x9d8]
call dword [0x6412b4]
push esi
mov dword [esi + 0x9d8], ebx
call fcn.00524fd0
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffffffbf
and ecx, 0x40
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
js 0x51aed2
cmp eax, 0xffff
jg 0x51aed2
push eax
call fcn.0052d240
mov ecx, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
mov word [ecx + 0x5e0], ax
mov eax, ebx
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
js 0x51aed2
cmp eax, 0xffff
jg 0x51aed2
push eax
call fcn.0052d230
mov ecx, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
mov dword [ecx + 0x5e4], eax
mov eax, ebx
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
xor edx, edx
mov ecx, dword [esp + 0x1c]
cmp dword [eax], edx
mov eax, dword [ecx + 0x854]
setne dl
and eax, 0xfffffffe
or edx, eax
mov dword [ecx + 0x854], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
je case.0x5180d4.91
mov eax, dword [ecx + 0x26c]
xor eax, edx
pop edi
and eax, 1
xor dword [ecx + 0x26c], eax
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
and al, 3
movzx edx, al
mov eax, dword [ecx + 0x854]
neg edx
sbb edx, edx
and eax, 0xfffffffd
and edx, 2
or edx, eax
mov dword [ecx + 0x854], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
je case.0x5180d4.91
mov eax, dword [ecx + 0x26c]
xor eax, edx
pop edi
and eax, 2
xor dword [ecx + 0x26c], eax
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [0x6412c8]
test byte [eax + 8], 2
je case.0x519224.244
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
pop edi
pop esi
cmp dword [eax], ecx
mov eax, dword [edx + 0x880]
setne cl
and eax, 0xfffffffe
or ecx, eax
mov eax, ebx
pop ebp
mov dword [edx + 0x880], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
cmp esi, 0x80000
jle 0x518d75
mov esi, 0x80000
jmp 0x518d8b
cmp esi, 1
jge 0x518d81
mov esi, 0x4000
jmp 0x518d8b
mov eax, 0x400
cmp esi, eax
cmovl esi, eax
mov edi, dword [esp + 0x1c]
cmp esi, dword [edi + 0x8e4]
je 0x518dc9
lea eax, [esi + 1]
push eax
push dword [edi + 0xc64]
call dword [0x6412b8]
add esp, 8
test eax, eax
jne 0x518dc3
mov dword [edi + 0x8e4], esi
mov ebx, 0x1b
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 8
ret
mov dword [edi + 0xc64], eax
mov dword [edi + 0x8e4], esi
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffffb
and ecx, 4
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
js 0x51aed2
mov ecx, dword [esp + 0x1c]
pop edi
cdq
pop esi
mov dword [ecx + 0x8f8], eax
mov eax, ebx
pop ebp
mov dword [ecx + 0x8fc], edx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 3
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x91c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 2
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x8f4], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffff7
and ecx, 8
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffffffef
and ecx, 0x10
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffffffdf
and ecx, 0x20
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0x854]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffff7
and ecx, 8
or ecx, eax
mov eax, dword [edx + 0x8a8]
xor eax, ecx
mov dword [edx + 0x854], ecx
and eax, 8
xor dword [edx + 0x8a8], eax
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov esi, 0x40
pop edi
cmp dword [eax], ecx
mov eax, dword [edx + 0xa9c]
cmove ecx, esi
and eax, 0xffffffbf
pop esi
or ecx, eax
mov eax, ebx
pop ebp
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov esi, 0x80
pop edi
cmp dword [eax], ecx
mov eax, dword [edx + 0xa9c]
cmove ecx, esi
and eax, 0xffffff7f
pop esi
or ecx, eax
mov eax, ebx
pop ebp
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 0x1ff
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x920], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
cmp ecx, 0x1ff
jg 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x924], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa30], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa34], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa38], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
dec eax
cmp eax, 0xa
ja case.default.0x51905f
jmp dword [eax*4 + 0x51b124]
mov eax, dword [esp + 0x1c]
mov ecx, 1
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 2
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 3
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 4
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 5
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 6
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 7
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 8
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 9
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 0xa
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
mov ecx, 0xb
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
xor ecx, ecx
pop edi
pop esi
pop ebp
mov dword [eax + 0xa40], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xf48], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffff7ff
and ecx, 0x800
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0xa58], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
cmp edx, 0x2711
jg 0x5197b7
je 0x51979d
lea eax, [edx - 0xd4]
cmp eax, 0x4c
ja case.0x51adf6.30118
movzx eax, byte [eax + 0x51b1cc]
jmp dword [eax*4 + 0x51b150]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffdfffff
and ecx, 0x200000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa98]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffff7
and ecx, 8
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
cmp edx, 0x20
mov eax, 0x884
mov ecx, 0x830
cmovne ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [esp + 0x1c]
mov eax, dword [eax]
movzx edx, ax
and eax, 0xffff0000
cmp edx, 8
jae 0x51aed2
cmp eax, 0x7ffff
ja 0x51aed2
pop edi
pop esi
mov dword [ecx + 4], eax
mov eax, ebx
pop ebp
mov dword [ecx], edx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
movzx eax, byte [eax]
shl eax, 4
xor eax, dword [ecx + 0xa98]
and eax, 0x10
xor dword [ecx + 0xa98], eax
mov eax, ebx
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0xa68], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
cmp edx, 1
jg 0x51aed2
mov ecx, dword [esp + 0x1c]
neg edx
pop edi
sbb edx, edx
pop esi
mov eax, dword [ecx + 0xa9c]
and edx, 0x4000000
and eax, 0xfbffffff
or edx, eax
mov eax, ebx
pop ebp
mov dword [ecx + 0xa9c], edx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ebx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x5bc], ebx
and ebx, 0xfffffffa
neg ebx
sbb ebx, ebx
and ebx, 4
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x640], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffdfffff
and ecx, 0x200000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
xor edx, edx
mov ecx, dword [esp + 0x1c]
cmp dword [eax], edx
mov eax, dword [ecx + 0x8a8]
setne dl
and eax, 0xfffffffe
or edx, eax
mov dword [ecx + 0x8a8], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
je case.0x5180d4.91
mov eax, dword [ecx + 0x294]
xor eax, edx
pop edi
and eax, 1
xor dword [ecx + 0x294], eax
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
and al, 3
movzx edx, al
mov eax, dword [ecx + 0x8a8]
neg edx
sbb edx, edx
and eax, 0xfffffffd
and edx, 2
or edx, eax
mov dword [ecx + 0x8a8], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
je case.0x5180d4.91
mov eax, dword [ecx + 0x294]
xor eax, edx
pop edi
and eax, 2
xor dword [ecx + 0x294], eax
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 8
ret
call fcn.00524420
test al, al
jne 0x519472
pop edi
pop esi
mov ebx, 4
pop ebp
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
mov eax, dword [ecx + 0x854]
neg edx
sbb edx, edx
and eax, 0xfffffffb
and edx, 4
or edx, eax
mov dword [ecx + 0x854], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
je case.0x5180d4.91
mov eax, dword [ecx + 0x26c]
xor eax, edx
pop edi
and eax, 4
xor dword [ecx + 0x26c], eax
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 8
ret
call fcn.00524930
test al, al
je case.0x519224.244
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0x880]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffffd
and ecx, 2
or ecx, eax
mov eax, ebx
mov dword [edx + 0x880], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
cmp eax, 0x200000
jle 0x519503
mov eax, 0x200000
jmp 0x51950d
mov ecx, 0x4000
cmp eax, ecx
cmovl eax, ecx
mov esi, dword [esp + 0x1c]
push dword [esi + 0xc68]
mov dword [esi + 0x8e8], eax
call dword [0x6412b4]
add esp, 4
mov dword [esi + 0xc68], ebx
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov eax, dword [eax]
movzx ecx, al
and eax, 2
and ecx, 1
or ecx, eax
mov eax, dword [edx + 0x880]
and eax, 0xfffffff3
shl ecx, 2
or ecx, eax
mov eax, ebx
pop ebp
mov dword [edx + 0x880], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov eax, dword [eax]
movzx ecx, al
and eax, 2
and ecx, 1
or ecx, eax
mov eax, dword [edx + 0x8d4]
and eax, 0xfffffff3
shl ecx, 2
or ecx, eax
mov eax, ebx
pop ebp
mov dword [edx + 0x8d4], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffffbff
and ecx, 0x400
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xffffefff
and ecx, 0x1000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0xa5c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0xa60], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffeffff
and ecx, 0x10000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffdffff
and ecx, 0x20000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfffbffff
and ecx, 0x40000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x644], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xfff7ffff
and ecx, 0x80000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [edx + 0xa9c]
neg ecx
pop ebp
sbb ecx, ecx
and eax, 0xff7fffff
and ecx, 0x800000
or ecx, eax
mov eax, ebx
mov dword [edx + 0xa9c], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0xa80], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
js 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x64c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x5a0], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
cmp edx, 0x27f4
jg 0x51a679
je 0x51a65f
add edx, 0xffffd8ee
cmp edx, 0xde
ja case.0x51adf6.30118
movzx eax, byte [edx + 0x51b344]
jmp dword [eax*4 + 0x51b21c]
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9ac
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9c0
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9bc
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x97c
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
je 0x5198bf
cmp byte [eax], bl
jne 0x5198bf
call fcn.0052e740
mov esi, eax
test esi, esi
jne 0x519899
pop edi
pop esi
mov ebx, 0x1b
pop ebp
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
add eax, 0x950
push esi
push eax
call fcn.00518030
push esi
mov ebx, eax
call dword [0x6412b4]
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push eax
mov eax, dword [esp + 0x20]
add eax, 0x950
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov ebp, dword [eax]
test ebp, ebp
je 0x51997e
mov edx, dword [esi + 0x5d8]
mov eax, edx
mov ecx, dword [esi + 0x5dc]
and eax, ecx
cmp eax, 0xffffffff
je 0x51997e
test ecx, ecx
ja 0x519954
jb 0x51990e
cmp edx, 0xffffffff
ja 0x519954
push dword [esi + 0xa2c]
call dword [0x6412b4]
mov dword [esi + 0xa2c], ebx
add esp, 4
mov ecx, dword [esi + 0x5d8]
mov eax, ecx
mov edx, dword [esi + 0x5dc]
or eax, edx
je 0x51993b
mov dword [esp + 0x14], edx
jmp 0x519944
mov ecx, 1
mov dword [esp + 0x14], ebx
push ecx
call dword [0x6412b0]
mov edi, eax
add esp, 4
test edi, edi
jne 0x51995b
mov ebx, 0x1b
jmp 0x519990
mov ecx, dword [esi + 0x5d8]
mov eax, ecx
or eax, dword [esi + 0x5dc]
je 0x519976
push ecx
push ebp
push edi
call fcn.004eecb0
add esp, 0xc
mov dword [esi + 0xa2c], edi
jmp 0x519990
lea eax, [esi + 0xa2c]
push ebp
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
mov eax, dword [esi + 0xa2c]
pop edi
mov dword [esi + 0x5cc], eax
mov eax, ebx
mov dword [esi + 0x828], 2
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esi + 0x5cc], eax
push dword [esi + 0xa2c]
call dword [0x6412b4]
add esp, 4
mov dword [esi + 0xa2c], ebx
mov dword [esi + 0x828], 2
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov eax, dword [eax]
and dword [ecx + 0xa98], 0xefffffff
mov dword [ecx + 0x688], eax
mov eax, ebx
mov dword [ecx + 0x828], 3
pop ebx
add esp, 8
ret
mov edi, dword [esp + 0x1c]
test byte [edi + 0xab0], 2
je 0x519a40
push dword [edi + 0xaa4]
call dword [0x6412b4]
add esp, 4
mov dword [edi + 0xaa4], ebx
and dword [edi + 0xab0], 0xfffffffd
mov eax, dword [esp + 0x24]
lea esi, [edi + 0x98c]
push dword [eax]
push esi
call fcn.00518030
add esp, 8
mov ebx, eax
mov eax, dword [esi]
mov dword [edi + 0xaa4], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9c4
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x680], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x8f0], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x93c
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
je case.0x5180d4.91
mov esi, dword [esp + 0x1c]
push eax
push dword [esi + 0xaa8]
call fcn.0051b730
add esp, 8
test eax, eax
jne 0x519b27
push dword [esi + 0xaa8]
call fcn.0051b7b0
add esp, 4
mov dword [esi + 0xaa8], ebx
mov eax, 0x1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
pop edi
mov dword [esi + 0xaa8], eax
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
push dword [eax]
lea eax, [esi + 0x940]
push eax
call fcn.00518030
mov ebx, eax
mov eax, dword [esi + 0xa98]
shr eax, 5
and al, 1
movzx eax, al
push eax
push dword [esi + 0xab4]
push 0
push esi
call fcn.0051fa30
add esp, 0x18
mov dword [esi + 0xab4], eax
test eax, eax
mov ecx, 0x1b
cmove ebx, ecx
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
test edi, edi
je case.0x5180d4.91
push 0x5e3f38
push edi
call fcn.0052e360
add esp, 8
test eax, eax
je 0x519bd7
mov esi, dword [esp + 0x1c]
push 2
push 2
push esi
call fcn.0052ea40
push dword [esi + 0xab4]
call fcn.0051f4a0
push 2
push esi
call fcn.0052ea80
add esp, 0x18
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push str.SESS
push edi
call fcn.0052e360
add esp, 8
test eax, eax
je 0x519c17
mov esi, dword [esp + 0x1c]
push 2
push 2
push esi
call fcn.0052ea40
push dword [esi + 0xab4]
call fcn.0051f540
push 2
push esi
call fcn.0052ea80
add esp, 0x18
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push str.FLUSH
push edi
call fcn.0052e360
add esp, 8
test eax, eax
je 0x519c41
push 0
push dword [esp + 0x20]
call fcn.0051ff50
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push str.RELOAD
push edi
call fcn.0052e360
add esp, 8
test eax, eax
je 0x519c69
push dword [esp + 0x1c]
call fcn.0051fce0
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0xab4], ebx
jne 0x519c8a
push 1
push 0
push 0
push esi
call fcn.0051fa30
add esp, 0x10
mov dword [esi + 0xab4], eax
push edi
call dword [0x6412bc]
mov edi, eax
add esp, 4
test edi, edi
je 0x519d05
cmp dword [esi + 0xab4], ebx
je 0x519d05
push 2
push 2
push esi
call fcn.0052ea40
push 0xb
push edi
push str.Set_Cookie:
call fcn.0052e4f0
add esp, 0x18
test eax, eax
je 0x519cca
mov byte [esp + 0x20], 1
lea eax, [edi + 0xb]
jmp 0x519cd0
mov byte [esp + 0x20], bl
mov eax, edi
push 1
push 0
push 0
push eax
push 0
push dword [esp + 0x34]
push dword [esi + 0xab4]
push esi
call fcn.0051e710
push 2
push esi
call fcn.0052ea80
push edi
call dword [0x6412b4]
add esp, 0x2c
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push edi
mov ebx, 0x1b
call dword [0x6412b4]
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x944
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x980
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x5a8], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x598], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
push dword [eax]
lea esi, [edi + 0x95c]
push esi
call fcn.00518030
mov ecx, dword [esi]
add esp, 8
neg ecx
mov ebx, eax
mov eax, dword [edi + 0xa98]
sbb ecx, ecx
and eax, 0xffffbfff
and ecx, 0x4000
or ecx, eax
mov eax, ebx
mov dword [edi + 0xa98], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x954
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x958
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
push dword [eax]
lea esi, [edi + 0x978]
push esi
call fcn.00518030
mov ecx, dword [esi]
add esp, 8
neg ecx
mov ebx, eax
mov eax, dword [edi + 0xa98]
sbb ecx, ecx
and eax, 0x7fffffff
and ecx, 0x80000000
or ecx, eax
mov eax, ebx
mov dword [edi + 0xa98], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x5a4], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov edi, dword [esp + 0x1c]
test byte [edi + 0xab0], 1
je 0x519ea5
push dword [edi + 0xaa0]
call dword [0x6412b4]
add esp, 4
mov dword [edi + 0xaa0], ebx
and dword [edi + 0xab0], 0xfffffffe
mov eax, dword [esp + 0x24]
lea esi, [edi + 0x990]
push dword [eax]
push esi
call fcn.00518030
add esp, 8
mov ebx, eax
mov eax, dword [esi]
mov dword [edi + 0xaa0], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
xor ebx, ebx
lea edi, [eax + 0x9e0]
lea ebp, [eax + 0x9dc]
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
test esi, esi
je 0x519f38
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x519f00
sub ecx, edx
lea eax, [esp + 0x10]
xor edx, edx
test edi, edi
push edx
cmove eax, edx
test ebp, ebp
push eax
lea eax, [esp + 0x28]
cmove eax, edx
push eax
push ecx
push esi
call fcn.00526550
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne case.0x5180d4.91
mov eax, dword [esp + 0x20]
test ebp, ebp
je 0x519f78
test eax, eax
jne 0x519f65
test esi, esi
je 0x519f65
cmp byte [esi], 0x3a
jne 0x519f65
push 0x5de8d4
call dword [0x6412bc]
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
mov ecx, 0x1b
cmove ebx, ecx
push dword [ebp]
call dword [0x6412b4]
mov eax, dword [esp + 0x24]
add esp, 4
mov dword [ebp], eax
test edi, edi
je case.0x5180d4.91
push dword [edi]
call dword [0x6412b4]
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [edi], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9dc
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9e0
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9e4
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0xa10
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x7fc], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x800], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x7f8], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x814], ecx
mov dword [eax + 0xaac], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x630], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
xor ebx, ebx
lea edi, [eax + 0x9ec]
lea ebp, [eax + 0x9e8]
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
test esi, esi
je 0x519f38
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51a0e0
jmp 0x519f07
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9e8
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9ec
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9f0
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x988
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x594], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esi + 0x590], eax
test eax, eax
jne case.0x5180d4.91
push 2
call fcn.004f6633
add esp, 4
mov dword [esi + 0x590], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x620], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x634], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x92c
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x934
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x960
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x970
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x968
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
test esi, esi
je case.0x5180d4.91
cmp byte [esi], bl
je case.0x5180d4.91
mov edi, dword [esp + 0x1c]
push esi
lea eax, [edi + 0x9d8]
push eax
call fcn.00518030
mov ebx, eax
add esp, 8
test ebx, ebx
jne case.0x5180d4.91
push esi
push edi
call fcn.00524fc0
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x94c
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [0x6412c8]
test byte [eax + 8], 8
je case.0x519224.244
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x868], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x99c
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [0x6412c8]
test byte [eax + 8], 1
je case.0x519224.244
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x994
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9c8
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9d0
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x810], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
cmp dword [esi + 0x80], ebx
je 0x51a44d
push 2
push 1
push esi
call fcn.0052ea40
add esp, 0xc
cmp dword [esi + 0x74], 2
jne 0x51a40d
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], ebx
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx + 0x68]
cmp eax, dword [esi + 0xab4]
jne 0x51a424
mov dword [esi + 0xab4], ebx
mov eax, dword [ecx + 0x6c]
cmp eax, dword [esi + 0xc80]
jne 0x51a435
mov dword [esi + 0xc80], ebx
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x80]
dec ecx
push 1
push esi
mov dword [eax + 4], ecx
call fcn.0052ea80
add esp, 8
mov dword [esi + 0x80], edi
test edi, edi
je case.0x5180d4.91
push 2
push 1
push esi
call fcn.0052ea40
mov eax, dword [esi + 0x80]
add esp, 0xc
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x80]
inc ecx
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x80]
test byte [ecx], 8
je 0x51a493
lea eax, [ecx + 0x50]
mov dword [esi + 0x74], 2
mov dword [esi + 0x70], eax
mov edx, ecx
cmp dword [ecx + 0x68], ebx
je 0x51a4b9
push dword [esi + 0xab4]
call fcn.0051f3f0
mov ecx, dword [esi + 0x80]
add esp, 4
mov edx, ecx
mov eax, dword [ecx + 0x68]
mov dword [esi + 0xab4], eax
cmp dword [ecx + 0x6c], ebx
je 0x51a4d0
mov eax, dword [ecx + 0x70]
mov dword [esi + 0x8d8], eax
mov eax, dword [edx + 0x6c]
mov dword [esi + 0xc80], eax
push 1
push esi
call fcn.0052ea80
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x8ec], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x60c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x614], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x61c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0xa08
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0xa0c
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa3c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9f4
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9f8
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9fc
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x5ac], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xfcc], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa54], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x684], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
cmp edx, 0x4e2b
jg 0x51ab06
je 0x51aabc
add edx, 0xffffd80a
cmp edx, 0x3b
ja case.0x51adf6.30118
movzx eax, byte [edx + 0x51b498]
jmp dword [eax*4 + 0x51b424]
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9b0
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
call fcn.00525040
test al, al
je case.0x51a6a1.10240
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9b4
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
call fcn.00525040
test al, al
je case.0x51a6a1.10240
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9b8
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0xa18
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
push 0
push dword [eax]
lea eax, [esi + 0x690]
push eax
call fcn.00521a70
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne case.0x5180d4.91
and dword [esi + 0xa98], 0xefffffff
pop edi
mov dword [esi + 0x828], 4
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x984
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0xa00
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0xa04
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa8c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x930
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x938
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x964
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x974
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x96c
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [0x6412c8]
test byte [eax + 8], 4
je case.0x519224.244
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9a4
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [0x6412c8]
test byte [eax + 8], 4
je case.0x519224.244
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9a8
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9a0
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [0x6412c8]
test byte [eax + 8], 1
je case.0x519224.244
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x998
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x9cc
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa7c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0x948
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0xa20
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
and dword [ecx + 0xa9c], 0xffbfffff
push dword [eax]
lea eax, [ecx + 0xa14]
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
or dword [ecx + 0xa9c], 0x400000
push dword [eax]
lea eax, [ecx + 0xa14]
push eax
call fcn.00518030
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x818], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
push dword [eax]
lea esi, [edi + 0xa1c]
push esi
call fcn.00518030
mov ecx, dword [esi]
add esp, 8
neg ecx
mov ebx, eax
mov eax, dword [edi + 0xa9c]
sbb ecx, ecx
and eax, 0xfeffffff
and ecx, 0x1000000
or ecx, eax
mov eax, ebx
mov dword [edi + 0xa9c], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa90], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [edx + 0xa98]
mov dword [edx + 0x5e8], eax
test eax, eax
jne 0x51aaf3
pop edi
pop esi
and ecx, 0xfffffffd
mov dword [edx + 0x5e8], 0x4f8637
pop ebp
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
pop edi
pop esi
or ecx, 2
mov eax, ebx
pop ebp
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
cmp edx, 0x4f30
jg 0x51ad76
je 0x51ad5c
add edx, 0xffffb1d4
cmp edx, 0xcf
ja case.0x51adf6.30118
movzx eax, byte [edx + 0x51b520]
jmp dword [eax*4 + 0x51b4d4]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edx, dword [eax]
mov dword [esi + 0x5f8], edx
mov ecx, dword [esi + 0xc3c]
mov eax, ecx
and eax, 0xfffffffe
or ecx, 1
test edx, edx
pop edi
cmove ecx, eax
mov eax, ebx
mov dword [esi + 0xc3c], ecx
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edx, dword [eax]
mov dword [esi + 0x5fc], edx
jmp 0x51ab48
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x600], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x5ec], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [edx + 0xa98]
mov dword [edx + 0x5f4], eax
test eax, eax
jne 0x51abe8
pop edi
pop esi
and ecx, 0xfffffffe
mov dword [edx + 0x5f4], 0x4fadcb
pop ebp
mov eax, ebx
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
pop edi
pop esi
or ecx, 1
mov eax, ebx
pop ebp
mov dword [edx + 0xa98], ecx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x5d0], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x624], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x628], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x62c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x604], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [0x6412c8]
test byte [eax + 8], 8
je case.0x519224.244
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x864], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x608], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x610], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x618], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x5f0], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa48], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa4c], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa50], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa78], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
cmp edx, 0x75a3
jg 0x51addd
je 0x51ada6
cmp edx, 0x4f3b
jne case.0x51adf6.30118
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa94], ecx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
cmp edx, 0xffffffff
jl 0x51aed2
jg 0x51adc3
cmp ecx, 0xffffffff
jb 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x658], ecx
mov dword [eax + 0x65c], edx
mov eax, ebx
pop ebx
add esp, 8
ret
add edx, 0xffff8a5c
cmp edx, 0x9a
ja case.0x51adf6.30118
movzx eax, byte [edx + 0x51b60c]
jmp dword [eax*4 + 0x51b5f0]
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x820], ecx
mov dword [eax + 0x824], edx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
mov ebp, dword [eax + 4]
jmp 0x518572
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
test edx, edx
jl 0x51aed2
jg 0x51ae49
test ecx, ecx
jb 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x668], ecx
mov dword [eax + 0x66c], edx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
test edx, edx
jl 0x51aed2
jg 0x51ae76
test ecx, ecx
jb 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x670], ecx
mov dword [eax + 0x674], edx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
cmp edx, 0xffffffff
jl 0x51aed2
jg 0x51aea5
cmp ecx, 0xffffffff
jb 0x51aed2
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x678], ecx
mov dword [eax + 0x67c], edx
mov eax, ebx
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
test edx, edx
jg 0x51aedf
jl 0x51aed2
test ecx, ecx
jae 0x51aedf
pop edi
pop esi
pop ebp
mov eax, 0x2b
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 0x8f8], ecx
mov dword [eax + 0x8fc], edx
mov eax, ebx
pop ebx
add esp, 8
ret
mov ebx, 0x30
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 8
ret