Function at 0x517aae
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x358
mov ecx, dword [ebp + 0x10]
or dword [ebp - 0x10], 0xffffffff
push ebx
mov ebx, dword [ebp + 8]
and dword [ebp + 8], 0
push esi
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
movzx eax, ax
shr ecx, 2
cmp eax, 0x200
push edi
mov dword [ebp - 0x4c], ecx
jne 0x51868c
and dword [ebx + 0x50], 0
lea edi, [esi + 4]
jmp 0x517ca8
mov ecx, dword [edi]
and ecx, 0x80000000
add edi, 4
test ecx, ecx
jne 0x51868c
mov ecx, eax
and ecx, edx
cmp ecx, 0xfffe
jne 0x517b21
shr eax, 0x10
and eax, 0x7fff
lea edi, [edi + eax*4]
jmp 0x517c96
cmp ecx, 0x51
jne 0x517b36
mov ecx, dword [edi]
call fcn.0051df8e
dec eax
dec eax
jne 0x517b4a
inc dword [ebx + 0x1c]
jmp 0x517b4a
cmp ecx, 0x30
jne 0x517b52
mov ecx, dword [edi]
call fcn.0051df8e
cmp eax, 7
jne 0x517b4a
inc dword [ebx + 0x24]
add edi, 0x14
jmp 0x517c96
cmp ecx, 0x2f
jne 0x517b84
mov eax, dword [edi]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x700
and eax, 0x1800
or ecx, eax
and ecx, 0xffffff00
cmp ecx, 0xe00
jne 0x517b7c
inc dword [ebx + 0x2c]
add edi, 8
jmp 0x517c96
cmp ecx, 0x1f
jne 0x517c88
shr eax, 0x18
and eax, 0xf
xor edx, edx
cmp eax, 2
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x2c], edx
jne 0x517bab
mov eax, dword [edi + 4]
mov edx, dword [edi]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
shr eax, 0x14
and eax, 0x700
and esi, 0x1800
or eax, esi
shr eax, 8
and ecx, 0x7ff
dec eax
je 0x517c09
dec eax
dec eax
je 0x517bec
sub eax, 7
jne 0x517c7a
and edx, 0x78000000
mov dword [ebx + ecx*4 + 0x58], edx
jmp 0x517c7a
mov eax, dword [ebp - 0x2c]
and eax, 0x400000
push eax
mov eax, dword [ebp - 0x2c]
shr eax, 0x10
and eax, 0xffffff0f
push eax
push ecx
push 6
push ecx
push 5
jmp 0x517c6a
xor esi, esi
xor al, al
cmp dword [ebp - 0x34], 0xffff0300
jb 0x517c24
mov eax, edx
mov esi, edx
shr eax, 0x10
and esi, 0xf
and al, 0xf
jmp 0x517c36
test ecx, ecx
jne 0x517c2c
xor al, al
jmp 0x517c33
cmp ecx, 1
jne 0x517c36
mov al, cl
push 0xa
pop esi
test dword [ebp - 0x2c], 0x400000
jne 0x517c51
cmp dword [ebp - 0x34], 0xffff0200
jb 0x517c4d
cmp esi, 0xa
je 0x517c51
xor edx, edx
jmp 0x517c54
xor edx, edx
inc edx
push edx
mov edx, dword [ebp - 0x2c]
shr edx, 0x10
and edx, 0xffffff0f
push edx
push ecx
movzx eax, al
push 1
push eax
push esi
lea esi, [ebx + 0x54]
call fcn.0051dc20
test eax, eax
jl 0x51868c
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp + 0xc]
lea edi, [edi + eax*4]
jmp 0x517c96
mov eax, 0x80000000
jmp 0x517c92
add edi, 4
test dword [edi], eax
jne 0x517c8f
mov ecx, dword [ebp - 0x4c]
mov eax, edi
sub eax, esi
sar eax, 2
cmp eax, ecx
jg 0x51868c
mov eax, dword [edi]
inc dword [ebx + 8]
mov edx, 0xffff
cmp eax, edx
jne 0x517af2
sub edi, esi
add edi, 4
sar edi, 2
cmp edi, ecx
jne 0x51868c
mov eax, dword [ebp - 0x4c]
shl eax, 2
push eax
call fcn.0040c482
test eax, eax
mov dword [ebx + 0x18], eax
je 0x517d4e
push dword [ebp + 0x10]
push esi
push eax
call fcn.0041303e
mov eax, dword [ebx + 8]
imul eax, eax, 0xe8
add esp, 0xc
push eax
call fcn.0040c482
test eax, eax
mov dword [ebx + 0x14], eax
je 0x517d4e
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0xe8
push ecx
push 0
push eax
call fcn.004130da
mov eax, dword [ebx + 0x1c]
imul eax, eax, 0x14
add esp, 0xc
push eax
call fcn.0040c482
test eax, eax
mov dword [ebx + 0x20], eax
je 0x517d4e
mov eax, dword [ebx + 0x24]
imul eax, eax, 0x14
push eax
call fcn.0040c482
test eax, eax
mov dword [ebx + 0x28], eax
je 0x517d4e
mov eax, dword [ebx + 0x2c]
shl eax, 3
push eax
call fcn.0040c482
test eax, eax
mov dword [ebx + 0x30], eax
jne 0x517d5a
mov dword [ebx + 4], 0x8007000e
jmp 0x518693
mov eax, dword [ebp + 0xc]
mov esi, dword [ebx + 0x18]
mov eax, dword [eax]
mov edi, dword [ebx + 0x14]
xor ecx, ecx
add esi, 4
cmp eax, 0xffff0103
mov dword [ebp - 0x4c], ecx
jbe 0x517d82
cmp eax, 0xfffffefe
mov dword [ebp - 0x2c], 1
jne 0x517d85
mov dword [ebp - 0x2c], ecx
xor eax, eax
mov edx, 0xffff
cmp dword [esi], edx
mov dword [ebp - 0x70], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x6c], eax
je 0x51852b
mov eax, esi
sub eax, dword [ebx + 0x18]
and dword [edi + 0xb4], 0
mov dword [edi + 0x88], eax
mov eax, dword [esi]
movzx ecx, ax
sub ecx, 0
je 0x51850c
sub ecx, 0x2f
je 0x51849e
dec ecx
je 0x518422
sub ecx, 0x21
je 0x51834d
sub ecx, 0xffad
je 0x51832f
and eax, 0x10000000
mov dword [edi + 0xb4], eax
mov eax, dword [esi]
mov dword [edi + 0x8c], eax
add esi, 4
and eax, edx
cmp eax, 0x1f
mov dword [ebp - 0xc], esi
jne 0x517e10
mov ecx, dword [esi]
add esi, 4
mov dword [edi + 0xc4], ecx
mov dword [ebp - 0xc], esi
mov ecx, dword [esi]
mov edx, 0x80000000
test edx, ecx
je 0x517e55
cmp eax, 0x29
ja 0x517e39
cmp eax, 0x28
jae 0x517e55
cmp eax, 0x19
jb 0x517e43
cmp eax, 0x1b
jbe 0x517e55
cmp eax, 0x1e
je 0x517e55
cmp eax, 0x26
jmp 0x517e41
cmp eax, 0x2d
je 0x517e55
cmp eax, 0x60
je 0x517e55
add esi, 4
inc dword [edi + 0xbc]
mov dword [edi + 0x90], ecx
mov dword [ebp - 0xc], esi
cmp dword [edi + 0xb4], 0
je 0x517e6c
mov eax, dword [esi]
add esi, 4
mov dword [edi + 0xb8], eax
mov dword [ebp - 0xc], esi
and dword [edi + 0xc0], 0
mov eax, dword [esi]
test edx, eax
je 0x517f2d
mov ecx, dword [edi + 0xc0]
mov dword [edi + ecx*4 + 0x94], eax
mov eax, dword [edi + 0xc0]
add esi, 4
test word [edi + eax*4 + 0x94], 0x2000
mov dword [ebp - 0xc], esi
je 0x517eb1
mov ecx, dword [esi]
add esi, 4
mov dword [edi + eax*4 + 0xa4], ecx
mov dword [ebp - 0xc], esi
cmp dword [ebp - 0x34], 0xffff0200
jae 0x517f1d
mov eax, dword [edi + 0xc0]
lea ecx, [edi + eax*4 + 0x94]
mov eax, dword [ecx]
mov edx, eax
shr edx, 0x14
and edx, 0x700
and eax, 0x1800
or edx, eax
cmp edx, 0x100
jne 0x517f1d
mov ecx, dword [ecx]
and ecx, 0x7ff
push ecx
lea eax, [ebx + 0x54]
push 1
mov dword [ebp + 0x10], ecx
call fcn.0051dc67
test eax, eax
jne 0x517f1d
push eax
push 0xf
push dword [ebp + 0x10]
lea esi, [ebx + 0x54]
push 1
push dword [ebp + 0x10]
push 0xa
call fcn.0051dc20
test eax, eax
jl 0x51868c
mov esi, dword [ebp - 0xc]
inc dword [edi + 0xc0]
mov eax, dword [esi]
test eax, eax
js 0x517e7d
mov eax, dword [edi + 0x8c]
and eax, 0xffff
xor ecx, ecx
cmp eax, 0x5d
ja 0x517f61
je 0x517f74
cmp eax, 0x40
jb 0x517f7e
cmp eax, 0x4a
jbe 0x517f74
cmp eax, 0x4b
jbe 0x517f7e
cmp eax, 0x4d
jbe 0x517f74
cmp eax, 0x51
jbe 0x517f7e
cmp eax, 0x57
ja 0x517f7e
jmp 0x517f74
cmp eax, 0x5f
je 0x517f74
lea edx, [eax - 0xc001]
cmp edx, 1
ja 0x517f7e
xor ecx, ecx
inc ecx
mov dword [edi + 0xcc], 1
cmp dword [edi + 0xcc], 0
je 0x5182ef
xor edx, edx
cmp ecx, edx
je 0x517fd5
mov ecx, dword [edi + 0x90]
and ecx, 0x7ff
lea eax, [ebx + 0x98]
mov edx, dword [eax]
inc ecx
cmp edx, ecx
jbe 0x517fac
mov ecx, edx
mov dword [eax], ecx
mov ecx, dword [edi + 0x90]
and ecx, 0x7ff
lea eax, [ecx - 1]
mov dword [edi + 0xc8], eax
xor eax, eax
inc eax
shl eax, cl
not eax
and dword [ebp - 0x10], eax
and dword [ebp + 8], eax
jmp 0x5182ef
cmp eax, 0x44
mov dword [ebp + 0x10], edx
mov dword [ebp - 0x48], 1
ja 0x518231
cmp eax, 0x43
jae 0x51821c
sub eax, 0x40
je 0x518118
dec eax
je 0x5180e8
dec eax
jne 0x51823f
mov ecx, dword [edi + 0xc0]
cmp ecx, 2
jb 0x51801b
mov eax, dword [edi + 0x98]
jmp 0x518021
mov eax, dword [edi + 0x90]
and eax, 0x7ff
cmp ecx, edx
mov dword [ebp + 0x10], eax
jne 0x518072
push eax
push 6
lea eax, [ebx + 0x54]
call fcn.0051dc67
test eax, eax
jne 0x5182b1
push eax
push 0xf
push dword [ebp + 0x10]
lea esi, [ebx + 0x54]
push 6
push dword [ebp + 0x10]
push 5
call fcn.0051dc20
test eax, eax
jl 0x51868c
mov ecx, dword [ebp + 0x10]
xor eax, eax
inc eax
shl eax, cl
not eax
and dword [ebp - 0x10], eax
and dword [ebp + 8], eax
jmp 0x5182ae
cmp dword [ebp - 0x34], 0xffff0200
jae 0x5182ba
mov eax, dword [edi + 0x94]
mov ecx, eax
shr ecx, 0x14
mov edx, eax
and ecx, 0x700
and edx, 0x1800
or ecx, edx
cmp ecx, 0x300
jne 0x5182b1
and eax, 0x7ff
mov dword [ebp - 0x48], eax
push dword [ebp - 0x48]
lea eax, [ebx + 0x54]
push 6
call fcn.0051dc67
test eax, eax
jne 0x5182b1
push eax
push 0xf
push dword [ebp - 0x48]
lea esi, [ebx + 0x54]
push 6
push dword [ebp - 0x48]
push 5
call fcn.0051dc20
test eax, eax
jl 0x51868c
mov ecx, dword [ebp - 0x48]
jmp 0x518060
cmp dword [ebp - 0x2c], edx
je 0x5180f2
mov dword [ebp - 0x48], edx
jmp 0x518100
mov eax, dword [edi + 0x90]
and eax, 0x7ff
mov dword [ebp + 0x10], eax
cmp dword [ebp - 0x34], 0xffff0200
jae 0x5182a8
mov eax, dword [edi + 0x90]
jmp 0x5181af
cmp dword [ebp - 0x2c], edx
je 0x518122
mov dword [ebp - 0x48], edx
jmp 0x518130
mov eax, dword [edi + 0x90]
and eax, 0x7ff
mov dword [ebp + 0x10], eax
mov eax, dword [edi + 0x90]
mov ecx, eax
shr ecx, 0x14
mov esi, eax
and ecx, 0x700
and esi, 0x1800
or ecx, esi
cmp ecx, 0x300
jne 0x51819d
and eax, 0x7ff
push eax
mov dword [ebp - 0x30], eax
lea esi, [ebx + 0x54]
push 6
mov eax, esi
call fcn.0051dc67
test eax, eax
jne 0x5182a8
push eax
push 0xf
push dword [ebp - 0x30]
push 6
push dword [ebp - 0x30]
push 5
call fcn.0051dc20
test eax, eax
jl 0x51868c
mov ecx, dword [ebp - 0x30]
xor eax, eax
inc eax
shl eax, cl
or dword [ebp - 0x10], eax
or dword [ebp + 8], eax
jmp 0x5182a8
cmp dword [edi + 0xc0], edx
je 0x5182a8
mov eax, dword [edi + 0x94]
mov ecx, eax
shr ecx, 0x14
mov edx, eax
and edx, 0x1800
and ecx, 0x700
or ecx, edx
cmp ecx, 0x300
jne 0x5182a8
and eax, 0x7ff
push eax
mov dword [ebp - 0x30], eax
lea esi, [ebx + 0x54]
push 6
mov eax, esi
call fcn.0051dc67
test eax, eax
jne 0x5182a8
push eax
push 0xf
push dword [ebp - 0x30]
push 6
push dword [ebp - 0x30]
push 5
call fcn.0051dc20
test eax, eax
jl 0x51868c
mov ecx, dword [ebp - 0x30]
xor eax, eax
inc eax
shl eax, cl
not eax
and dword [ebp - 0x10], eax
and dword [ebp + 8], eax
jmp 0x5182a8
mov ecx, dword [edi + 0x90]
and ecx, 0x7ff
mov dword [ebp + 0x10], ecx
push ecx
jmp 0x51802e
sub eax, 0x57
je 0x5182a5
sub eax, 6
je 0x518295
dec eax
dec eax
je 0x518295
cmp dword [ebp - 0x34], 0xffff0200
jae 0x5182ba
mov ecx, dword [edi + 0x90]
and ecx, 0x7ff
push ecx
lea eax, [ebx + 0x54]
push 6
mov dword [ebp + 0x10], ecx
call fcn.0051dc67
test eax, eax
jne 0x5182b1
push eax
push 0xf
push dword [ebp + 0x10]
lea esi, [ebx + 0x54]
push 6
push dword [ebp + 0x10]
push 5
call fcn.0051dc20
test eax, eax
jl 0x51868c
mov ecx, dword [ebp + 0x10]
xor eax, eax
inc eax
shl eax, cl
or dword [ebp - 0x10], eax
not eax
jmp 0x51806a
mov eax, dword [edi + 0x98]
and eax, 0x7ff
mov dword [ebp + 0x10], eax
jmp 0x5182b1
mov dword [ebp - 0x48], edx
cmp dword [ebp - 0x48], 0
je 0x5182ec
mov esi, dword [ebp - 0xc]
cmp dword [ebp - 0x34], 0xffff0200
jb 0x5182cd
cmp dword [ebp - 0x34], 0xfffffefe
je 0x5182cd
mov eax, dword [ebp + 0x10]
cmp dword [ebx + eax*4 + 0x58], 0
je 0x5182ef
mov ecx, dword [ebp + 0x10]
lea eax, [ebx + 0x98]
mov edx, dword [eax]
inc ecx
cmp edx, ecx
jbe 0x5182df
mov ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov dword [edi + 0xc8], eax
jmp 0x5182ef
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x518327
mov eax, 0x40000000
test dword [edi + 0x8c], eax
je 0x518315
mov dword [ecx + 0xe0], 1
test dword [edi + 0x8c], eax
jne 0x518327
test dword [ecx + 0x8c], eax
je 0x518327
mov dword [ecx + 0xe4], 1
mov dword [ebp - 0x4c], edi
jmp 0x518515
mov dword [edi + 0x8c], eax
movzx eax, word [esi + 2]
and eax, 0x7fff
mov dword [edi + 0x84], eax
lea esi, [esi + eax*4 + 4]
jmp 0x518515
mov dword [edi + 0x8c], eax
add esi, 4
mov ecx, dword [esi]
lea eax, [edi + 0x90]
mov dword [eax], ecx
mov eax, ecx
add esi, 4
inc dword [edi + 0xbc]
mov dword [ebp + 0x10], eax
call fcn.0051df8e
dec eax
dec eax
jne 0x518515
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp + 0x10]
imul eax, eax, 0x14
mov dword [ebp - 0x8c], eax
call fcn.0051df54
mov edx, dword [ebx + 0x20]
mov ecx, dword [ebp - 0x8c]
fld qword [0x5405ae08]
fld dword [0x54010944]
mov dword [ecx + edx + 0x10], eax
lea edx, [edi + 0xd0]
mov dword [ebp - 0x30], 4
fld dword [esi]
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x5183c5
fst dword [ebp + 0x10]
jmp 0x5183ca
fld dword [esi]
fstp dword [ebp + 0x10]
fld dword [ebp + 0x10]
fcomp qword [0x5405ae10]
fnstsw ax
test ah, 5
jp 0x5183e2
fld dword [0x5400d878]
jmp 0x5183f4
fld dword [esi]
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x5183f2
fst dword [ebp + 0x10]
jmp 0x5183f7
fld dword [esi]
fstp dword [ebp + 0x10]
mov eax, dword [ebx + 0x20]
fld dword [ebp + 0x10]
fstp dword [ecx + eax]
mov eax, dword [ebx + 0x20]
fld dword [ecx + eax]
add esi, 4
fstp dword [edx]
add ecx, 4
add edx, 4
dec dword [ebp - 0x30]
jne 0x5183b5
inc dword [ebp - 0x70]
fstp st(1)
fstp st(0)
jmp 0x518515
mov dword [edi + 0x8c], eax
add esi, 4
mov ecx, dword [esi]
lea eax, [edi + 0x90]
mov dword [eax], ecx
mov eax, ecx
add esi, 4
inc dword [edi + 0xbc]
mov dword [ebp + 0x10], eax
call fcn.0051df8e
cmp eax, 7
jne 0x518515
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
imul eax, eax, 0x14
mov edx, dword [ebx + 0x28]
and ecx, 0x7ff
mov dword [eax + edx + 0x10], ecx
lea ecx, [edi + 0xd0]
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x30], 4
mov edx, dword [esi]
mov ecx, dword [ebx + 0x28]
mov dword [eax + ecx], edx
mov ecx, dword [ebx + 0x28]
mov ecx, dword [ecx + eax]
mov edx, dword [ebp + 0x10]
add dword [ebp + 0x10], 4
add esi, 4
add eax, 4
dec dword [ebp - 0x30]
mov dword [edx], ecx
jne 0x518477
inc dword [ebp - 8]
jmp 0x518515
add esi, 4
mov dword [edi + 0x8c], eax
mov ecx, dword [esi]
lea eax, [edi + 0x90]
mov dword [eax], ecx
mov eax, ecx
shr ecx, 0x14
and ecx, 0x700
mov edx, eax
and edx, 0x1800
or ecx, edx
add esi, 4
inc dword [edi + 0xbc]
and ecx, 0xffffff00
cmp ecx, 0xe00
jne 0x518515
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebx + 0x30]
and eax, 0x7ff
shl ecx, 3
mov dword [edx + ecx + 4], eax
mov eax, dword [esi]
mov dword [edi + 0xd0], eax
mov edx, dword [ebx + 0x30]
xor eax, eax
cmp dword [esi], eax
setne al
add esi, 4
inc dword [ebp - 0x6c]
mov dword [edx + ecx], eax
jmp 0x518515
mov dword [edi + 0x8c], eax
add esi, 4
mov edx, 0xffff
add edi, 0xe8
cmp dword [esi], edx
jne 0x517d9d
mov ecx, dword [ebp - 0x4c]
mov dword [edi + 0x8c], edx
sub esi, dword [ebx + 0x18]
test ecx, ecx
mov dword [edi + 0x88], esi
je 0x518554
test dword [ecx + 0x8c], 0x40000000
je 0x518554
mov dword [ecx + 0xe4], 1
cmp dword [ebp - 0x2c], 0
jne 0x518594
xor edi, edi
cmp dword [ebx + 0x98], edi
jbe 0x518594
lea esi, [ebx + 0x54]
push edi
push 6
mov eax, esi
call fcn.0051dc67
test eax, eax
jne 0x51858b
push eax
push 0xf
push edi
push 6
push edi
push 5
call fcn.0051dc20
test eax, eax
jl 0x51868c
inc edi
cmp edi, dword [ebx + 0x98]
jb 0x518567
lea eax, [ebp - 0x354]
call fcn.0051def9
xor esi, esi
or ecx, 0xffffffff
lea eax, [ebp - 0x354]
push 3
mov dword [ebx + 0xa0], eax
mov byte [ebp - 0x70], 1
mov byte [ebp - 0x6f], 2
mov byte [ebp - 0x6e], 4
mov byte [ebp - 0x6d], 8
mov dword [ebp - 0x1d0], esi
mov dword [ebp - 0x1cc], ecx
mov dword [ebp - 0x1c8], esi
mov dword [ebp - 0x1c4], esi
mov dword [ebp - 0x1c0], ecx
mov byte [ebp - 0x1bc], 0
mov byte [ebp - 0x4d], 0xf
mov dword [ebp - 0x8c], esi
mov byte [ebp - 0x184], 0
mov dword [ebp - 0x198], 0xc
mov dword [ebp - 0x194], esi
mov dword [ebp - 0x190], esi
mov dword [ebp - 0x18c], esi
mov dword [ebp - 0x188], ecx
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x168], 0xd
mov dword [ebp - 0x164], esi
mov dword [ebp - 0x160], esi
mov dword [ebp - 0x15c], esi
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ecx
mov byte [ebp - 0x14], 0
pop edx
lea eax, [ebp - 0xe4]
mov dword [eax - 8], esi
mov dword [eax - 4], ecx
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov byte [eax + 0xc], 0
add eax, 0x18
dec edx
jns 0x51865d
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov eax, ebx
call fcn.00517753
mov edi, dword [ebx + 0x54]
jmp 0x51881a
mov dword [ebx + 4], 0x80004005
push ebx
call fcn.0051daf6
jmp 0x51d93e
mov eax, dword [ebp - 0x34]
cmp eax, 0xffff0300
mov edx, 0xfffffefe
jb 0x51872c
cmp eax, edx
je 0x51872c
push 4
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 8]
or dword [eax + 0x24], 0xffffffff
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], esi
add eax, 0x14
mov dword [eax], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 4]
shl eax, 2
mov dword [ecx + 0x2c], eax
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov dword [eax + 0x34], 1
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [edi + 0x10]
mov byte [eax + 0x30], cl
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x14]
mov dword [eax + 0x38], ecx
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov dword [eax + 0x3c], esi
jmp 0x5187fa
cmp dword [edi + 8], 1
mov dword [ebp + 0xc], esi
jne 0x51873c
mov dword [ebp + 0xc], 0x20
cmp eax, 0xffff0200
jb 0x51874c
cmp eax, edx
je 0x51874c
mov dword [ebp - 0x4c], esi
jmp 0x51875a
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 0xc]
shr eax, cl
and eax, 1
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x34], 0xffff0104
jb 0x518771
cmp dword [ebp - 0x34], edx
je 0x518771
mov dword [ebp + 0x10], 1
jmp 0x51877f
mov eax, dword [ebp - 0x10]
mov ecx, dword [edi + 0xc]
shr eax, cl
and eax, 1
mov dword [ebp + 0x10], eax
push 4
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 8]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], esi
add eax, 0x14
or dword [eax + 0x10], 0xffffffff
mov dword [eax], edx
mov eax, dword [edi + 0xc]
lea eax, [ecx + eax*4]
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x34], ecx
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [edi + 0x10]
mov byte [eax + 0x30], cl
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x14]
mov dword [eax + 0x38], ecx
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x3c], ecx
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [edi]
mov dword [eax + 0x40], ecx
mov eax, dword [ebx + 0xa0]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 4]
mov dword [eax + 0x44], ecx
mov edi, dword [edi + 0x18]
cmp edi, esi
jne 0x51869e
mov eax, dword [ebx + 0xa0]
mov dword [eax + 0x14], esi
jmp 0x51d81f
mov ecx, dword [eax + 0x14]
imul ecx, ecx, 0xe8
add ecx, dword [ebx + 0x14]
lea edi, [ebp - 0x1e0]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0xa0]
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x8c]
movzx edx, ax
and eax, 0xff0000
mov dword [ebp + 8], eax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x4c]
stosd dword es:[edi], eax
lea edi, [ebp - 0x1b8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x1f0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x250]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x230]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x220]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x44]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x1a8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x200]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x210]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x240]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0xc], edx
xor edx, edx
stosd dword es:[edi], eax
mov dword [ecx + 0x54], edx
mov eax, dword [ebx + 0xa0]
mov byte [eax + 0x58], 0xe4
mov eax, dword [ebx + 0xa0]
or dword [eax + 0x4c], 0xffffffff
add eax, 0x3c
mov dword [eax], 0x17
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov eax, dword [ebx + 0xa0]
mov ecx, dword [eax + 0x18]
cmp dword [ecx + 0xb4], edx
je 0x518974
mov ecx, dword [ecx + 0xb8]
and ecx, 0xf000000
sub ecx, 0xd000000
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + 0x34], ecx
mov esi, dword [ebx + 0xa0]
mov eax, dword [esi + 0x18]
mov al, byte [eax + 0xba]
mov byte [esi + 0x38], al
mov eax, dword [ebx + 0xa0]
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx + 0xb8]
and ecx, 0x7ff
or dword [eax + 0x2c], 0xffffffff
mov dword [eax + 0x1c], 0x16
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
mov dword [eax + 0x28], edx
jmp 0x51897f
push 8
lea esi, [eax + 0x3c]
lea edi, [eax + 0x1c]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, ebx
call fcn.00517753
cmp dword [ebp - 0xc], 0x51
ja 0x5189b6
je 0x51d816
cmp dword [ebp - 0xc], edx
je 0x51d816
cmp dword [ebp - 0xc], 0x1f
je 0x51d816
cmp dword [ebp - 0xc], 0x2e
jbe 0x5189d9
cmp dword [ebp - 0xc], 0x30
ja 0x5189d9
jmp 0x51d816
cmp dword [ebp - 0xc], 0xfffd
jb 0x5189db
cmp dword [ebp - 0xc], 0xfffe
jbe 0x51d816
cmp dword [ebp - 0xc], 0xffff
je 0x51d816
xor edx, edx
mov edi, dword [ebx + 0xa0]
mov eax, dword [edi + 0x18]
mov esi, dword [eax + 0x90]
mov eax, esi
shr eax, 0x14
mov ecx, esi
and eax, 0x700
and esi, 0x1800
or eax, esi
shr eax, 8
and ecx, 0x7ff
sub eax, edx
je 0x518a77
dec eax
je 0x518a68
dec eax
dec eax
je 0x518a5f
sub eax, 5
je 0x518a3b
dec eax
je 0x518a28
sub eax, 0xa
jne 0x518a8b
mov dword [ebp - 0x28], 0x16
jmp 0x518a7e
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x8c], 1
jmp 0x518a7e
or dword [ebp - 0x18], 0xffffffff
cmp dword [ebp - 0xc], 0x41
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
je 0x518a8b
xor eax, eax
inc eax
shl eax, cl
or dword [ebx + 0x50], eax
jmp 0x518a8b
mov dword [ebp - 0x28], 6
jmp 0x518a7e
cmp dword [ebp - 0xc], 0x41
jne 0x518a8b
mov dword [ebp - 0x28], 1
jmp 0x518a7e
mov dword [ebp - 0x28], 2
or dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + 0x90]
cmp eax, edx
mov dword [ebp - 0x30], ecx
je 0x518aa2
shr eax, 0x10
and al, 0xf
jmp 0x518aa4
mov al, 0xf
cmp dword [ecx + 0xe0], edx
mov byte [ebp - 8], al
je 0x518ad4
push 6
pop ecx
lea esi, [ebp - 0x28]
lea edi, [ebp - 0x1d0]
rep movsd dword es:[edi], dword [esi]
or dword [ebp - 0x18], 0xffffffff
mov byte [ebp - 0x4d], al
mov dword [ebp - 0x28], 0xb
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
push dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
lea esi, [ebx + 0x58]
push esi
push 0
lea eax, [ebp - 0x48]
push eax
call fcn.0051dca0
push dword [ebp - 0x34]
lea eax, [ebp - 0x2c]
push esi
push 1
push eax
call fcn.0051dca0
xor esi, esi
mov eax, edi
cmp dword [eax + 0xc0], esi
jbe 0x518f15
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0xc0]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + esi*4 + 0x94]
mov dword [ebp + 0xc], edx
call fcn.0051df54
mov ecx, dword [ebp + 0xc]
mov edi, eax
call fcn.0051df8e
cmp eax, 7
jg 0x518c68
je 0x518c54
xor edx, edx
sub eax, edx
je 0x518c40
dec eax
je 0x518bbe
dec eax
je 0x518b82
dec eax
jne 0x518ce9
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
mov dword [eax], 6
jmp 0x518cda
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
or dword [eax + 0x10], 0xffffffff
cmp dword [ebp - 0x34], 0xffff0200
mov dword [eax], 3
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
jae 0x518ce9
mov dword [ebp + esi*4 - 0x1e0], 1
jmp 0x518ce9
test word [ebp + 0xc], 0x2000
je 0x518c23
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + esi*4 + 0xa4]
or dword [ebp + 0x10], 0xffffffff
mov ecx, eax
shr ecx, 0x14
and ecx, 0x700
and eax, 0x1800
or ecx, eax
and ecx, 0xffffff00
cmp ecx, 0xf00
jne 0x518c01
and dword [ebp + 0x10], 0
push 0x13
pop edx
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
xor ecx, ecx
inc ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
jmp 0x518ce6
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
mov dword [eax], 1
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
jmp 0x518ce2
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
mov dword [eax], 2
jmp 0x518c35
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
mov dword [eax], 4
jmp 0x518cda
sub eax, 0xe
je 0x518cc8
sub eax, 3
je 0x518c8a
dec eax
dec eax
jne 0x518ce9
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
mov dword [eax], 0x16
jmp 0x518cda
xor ecx, ecx
sub edi, ecx
je 0x518ca7
dec edi
jne 0x518ce9
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
mov dword [eax], 0x12
jmp 0x518cb9
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
mov dword [eax], 0x11
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
or dword [eax + 0x10], 0xffffffff
jmp 0x518ce9
mov eax, esi
imul eax, eax, 0x18
lea eax, [ebp + eax - 0xec]
mov dword [eax], 5
and dword [eax + 8], 0
and dword [eax + 0xc], 0
or dword [eax + 0x10], 0xffffffff
mov dword [eax + 4], edi
mov edi, dword [ebp + 0xc]
and edi, 0xf000000
cmp edi, 0x9000000
je 0x518dd6
cmp edi, 0xa000000
je 0x518dd6
mov eax, esi
shl eax, 2
xor ecx, ecx
inc ecx
cmp edi, 0x6000000
lea edx, [ebp + eax - 0x250]
mov dword [edx], ecx
ja 0x518d80
je 0x518d77
cmp edi, 0x1000000
je 0x518d71
cmp edi, 0x2000000
je 0x518d68
cmp edi, 0x3000000
je 0x518d64
cmp edi, 0x4000000
je 0x518d51
cmp edi, 0x5000000
jne 0x518da8
mov dword [ebp + eax - 0x44], ecx
mov dword [ebp + eax - 0x200], ecx
mov dword [ebp + eax - 0x210], ecx
jmp 0x518deb
mov dword [ebp + eax - 0x44], ecx
mov dword [ebp + eax - 0x200], ecx
jmp 0x518deb
mov dword [ebp + eax - 0x44], ecx
jmp 0x518da8
mov dword [ebp + eax - 0x240], ecx
jmp 0x518deb
cmp edi, 0x7000000
je 0x518d58
cmp edi, 0x8000000
je 0x518dd0
cmp edi, 0xb000000
je 0x518dc4
cmp edi, 0xc000000
je 0x518dc0
cmp edi, 0xd000000
je 0x518db7
cmp dword [ebp + eax - 0x1e0], 0
jne 0x518deb
and dword [edx], 0
jmp 0x518deb
mov dword [ebp + eax - 0x1a8], ecx
jmp 0x518db2
mov dword [ebp + eax - 0x44], ecx
and dword [edx], 0
mov dword [ebp + eax - 0x230], ecx
jmp 0x518deb
mov dword [ebp + eax - 0x44], ecx
jmp 0x518d58
mov eax, esi
shl eax, 2
mov byte [ebp + esi - 0x4c], 4
mov dword [ebp + eax - 0x1b8], 1
mov ecx, dword [ebp - 0x6c]
lea edi, [esi*4 + 0x94]
lea edx, [ecx + edi]
mov cl, byte [edx + 2]
mov byte [ebp + 0xf], cl
mov byte [ebp + esi - 0x10], cl
mov ecx, dword [edx]
xor edx, edx
and ecx, 0xff0000
cmp ecx, 0xe40000
setne dl
mov ecx, edx
test ecx, ecx
lea edx, [ebp + eax - 0x220]
mov dword [ebp + 0x10], edx
mov dword [edx], ecx
je 0x518f08
mov ecx, dword [ebx + 0xa0]
mov edx, dword [ecx + 0x18]
mov edi, dword [edx + edi]
mov edx, edi
shr edx, 0x14
and edx, 0x700
and edi, 0x1800
or edx, edi
cmp edx, 0xa00
je 0x518f02
mov edx, dword [ecx + 0x18]
mov edi, dword [edx + esi*4 + 0x94]
mov edx, edi
shr edx, 0x14
and edx, 0x700
and edi, 0x1800
or edx, edi
cmp edx, 0x300
mov edx, dword [ebp - 0xc]
jne 0x518e9b
cmp edx, 0x40
je 0x518e88
cmp edx, 0x42
jne 0x518e9b
mov ecx, dword [ebp + 0x10]
and dword [ecx], 0
mov dword [ebp + eax - 0x1f0], 1
jmp 0x518f08
cmp edx, 0x21
ja 0x518f3a
je 0x518f02
cmp edx, 0xf
ja 0x518ee6
cmp edx, 0xe
jae 0x518ef0
cmp edx, 6
jb 0x518ebf
cmp edx, 7
jbe 0x518ef0
cmp edx, 9
jbe 0x518f08
xor eax, eax
xor edx, edx
mov cl, byte [ebp + esi - 0x2c]
test byte [ebp + eax - 0x70], cl
je 0x518edc
movzx edi, byte [ebp + 0xf]
mov cl, dl
shr edi, cl
and edi, 3
cmp edi, eax
jne 0x518f08
inc eax
inc edx
inc edx
cmp edx, 8
jge 0x518f02
jmp 0x518ec3
cmp edx, 0x1a
je 0x518f53
cmp edx, 0x20
jne 0x518ebf
cmp edx, 0x25
jne 0x518f02
test esi, esi
jne 0x518f08
cmp dword [ebp - 0x34], 0xffff02ff
jb 0x518f08
mov eax, dword [ebp + 0x10]
and dword [eax], 0
inc esi
cmp esi, dword [ebp - 0x108]
jb 0x518b29
mov eax, dword [ebp - 0x30]
test dword [eax + 0x90], 0x100000
je 0x518fc2
fldz
mov eax, dword [ebx + 0xa0]
fstp dword [eax + 0x64]
fld1
jmp 0x518fde
mov eax, edx
sub eax, 0x24
je 0x518f08
dec eax
je 0x518ef0
sub eax, 3
je 0x518f53
sub eax, 0x38
je 0x518f02
jmp 0x518ebf
cmp edx, 0x28
jne 0x518f7c
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + esi*4 + 0x94]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x700
and eax, 0x1800
or ecx, eax
cmp ecx, 0x1300
jmp 0x518f4c
cmp edx, 0x1a
jne 0x518ebf
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + esi*4 + 0x94]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x700
and eax, 0x1800
or ecx, eax
cmp ecx, 0x1300
jne 0x518ebf
cmp esi, 1
jne 0x518ebf
and dword [ebp - 0x21c], 0
jmp 0x518f08
cmp dword [eax + 0xcc], 0
fld dword [0x5400d878]
mov eax, dword [ebx + 0xa0]
fstp dword [eax + 0x64]
fld dword [0x54010944]
mov eax, dword [ebx + 0xa0]
fstp dword [eax + 0x68]
mov eax, dword [ebx + 0xa0]
mov ecx, dword [eax + 0x18]
movzx ecx, byte [ecx + 0x93]
xor edx, edx
and ecx, 0xf
inc edx
test cl, 8
je 0x519016
not ecx
and ecx, 7
inc ecx
shl edx, cl
mov dword [ebp + 0xc], edx
fild dword [ebp + 0xc]
fld1
fdivrp st(1)
jmp 0x51901e
shl edx, cl
mov dword [ebp + 0xc], edx
fild dword [ebp + 0xc]
fstp dword [eax + 0x60]
mov eax, ebx
call fcn.00517753
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 0x18]
xor eax, eax
cmp dword [ecx + 0xc0], eax
mov dword [ebp + 0xc], eax
jbe 0x519326
lea ecx, [ebp - 0xec]
mov dword [ebp + 0x10], ecx
cmp dword [ebp + eax*4 - 0x1e0], 0
je 0x519121
push 0xc
mov eax, ebx
call fcn.005177a4
fld dword [0x540267ec]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
and dword [eax + 0x1c], 0
and dword [eax + 0x20], 0
or dword [eax + 0x24], 0xffffffff
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x18], ecx
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
add eax, 0x14
mov dword [eax], 9
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
add edi, 0x2c
push 6
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [ebp + edx - 0x48]
mov byte [eax + 0x44], cl
mov eax, dword [ebx + 0xa0]
mov ecx, dword [eax + 4]
xor eax, eax
mov dword [ecx + 0x48], eax
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x50], eax
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
push 8
pop ecx
fstp dword [eax + 0x54]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
fld1
fstp dword [eax + 0x58]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
lea esi, [eax + 0x1c]
mov eax, dword [ebp + 0x10]
and dword [eax + 8], 0
and dword [eax + 0xc], 0
add edi, 0x5c
or dword [eax + 0x10], 0xffffffff
mov dword [eax], 9
mov dword [eax + 4], edx
rep movsd dword es:[edi], dword [esi]
mov eax, edx
cmp dword [ebp + eax*4 - 0x230], 0
je 0x5191a2
push 0x15
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
and dword [eax + 0x1c], 0
and dword [eax + 0x20], 0
or dword [eax + 0x24], 0xffffffff
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x18], ecx
add eax, 0x14
mov dword [eax], 9
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
pop ecx
add edi, 0x2c
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [ebp + edx - 0x48]
mov byte [eax + 0x44], cl
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 8
pop ecx
push edx
lea esi, [eax + 0x1c]
mov eax, dword [ebp + 0x10]
add edi, 0x48
push 9
rep movsd dword es:[edi], dword [esi]
pop ecx
call fcn.0051dfb1
mov eax, dword [ebp + 0xc]
cmp dword [ebp + eax*4 - 0x250], 0
je 0x519277
push 0xc
mov eax, ebx
call fcn.005177a4
push dword [ebp + 0xc]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
push 9
add eax, 0x14
pop ecx
call fcn.0051dfb1
fld dword [0x5400d878]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
push 6
pop ecx
add edi, 0x2c
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [ebp + edx - 0x48]
mov byte [eax + 0x44], cl
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + edx*4 - 0x200]
mov dword [eax + 0x48], ecx
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + edx*4 - 0x210]
mov dword [eax + 0x4c], ecx
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + edx*4 - 0x240]
mov dword [eax + 0x50], ecx
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
push 8
pop ecx
fstp dword [eax + 0x54]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
fld dword [0x54010944]
push edx
push 9
fstp dword [eax + 0x58]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
lea esi, [eax + 0x1c]
mov eax, dword [ebp + 0x10]
add edi, 0x5c
rep movsd dword es:[edi], dword [esi]
pop ecx
call fcn.0051dfb1
mov eax, dword [ebp + 0xc]
cmp dword [ebp + eax*4 - 0x220], 0
je 0x519309
cmp dword [ebp + eax*4 - 0x1b8], 0
jne 0x519309
push 0xd
mov eax, ebx
call fcn.005177a4
push dword [ebp + 0xc]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
push 9
add eax, 0x14
pop ecx
call fcn.0051dfb1
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push 6
pop ecx
add edi, 0x2c
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [ebp + edx - 0x2c]
mov byte [eax + 0x44], cl
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [ebp + edx - 0x10]
mov byte [eax + 0x45], cl
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 8
pop ecx
push edx
lea esi, [eax + 0x3c]
mov eax, dword [ebp + 0x10]
add edi, 0x48
push 9
rep movsd dword es:[edi], dword [esi]
pop ecx
call fcn.0051dfb1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 0x18]
add dword [ebp + 0x10], 0x18
inc eax
cmp eax, dword [ecx + 0xc0]
mov dword [ebp + 0xc], eax
jb 0x51904b
cmp dword [ebp - 0xc], 0xc002
ja 0x51d797
mov eax, dword [ebp - 0xc]
cmp eax, 0xc001
jae 0x51d41a
dec eax
cmp eax, 0x5f
ja 0x51d797
movzx eax, byte [eax + 0x54112a25]
jmp dword [eax*4 + 0x54112945]
cmp dword [ebp - 0xc], 0x44
je 0x51d42f
cmp dword [ebp - 0xc], 0xc002
je 0x51d42f
and dword [ebp + 0x10], 0
jmp 0x51d436
mov dword [ebp + 0x10], 1
lea ecx, [ebp - 0x104]
call fcn.0051dee1
lea ecx, [ebp - 0x120]
call fcn.0051dee1
lea ecx, [ebp - 0x150]
call fcn.0051dee1
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x90]
and eax, 0x7ff
push eax
push 6
mov dword [ebp + 0xc], eax
pop ecx
lea eax, [ebp - 0x104]
call fcn.0051dfb1
xor esi, esi
push esi
push 0xf
pop ecx
lea eax, [ebp - 0x120]
call fcn.0051dfb1
push esi
push 0x10
pop ecx
lea eax, [ebp - 0x150]
call fcn.0051dfb1
push esi
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
pop ecx
add edi, 0x14
push 6
lea esi, [ebp - 0x104]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
pop ecx
add edi, 0x2c
lea esi, [ebp - 0x104]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
pop ecx
add edi, 0x44
lea esi, [ebp - 0xec]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
and dword [eax + 0x5c], 0
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
and dword [eax + 0x60], 0
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov byte [eax + 0x64], 3
mov eax, dword [ebx + 0xa0]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 0xc8]
mov dword [eax + 0x68], ecx
push 3
lea eax, [ebp - 0x104]
push eax
push ebx
call fcn.005177ef
mov eax, ebx
call fcn.00517764
push 0x1a
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
add edi, 0x14
pop ecx
lea esi, [ebp - 0x120]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
pop ecx
add edi, 0x2c
lea esi, [ebp - 0x104]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov byte [eax + 0x44], 3
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov dword [eax + 0x48], 1
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 8
pop ecx
lea esi, [eax + 0x3c]
add edi, 0x4c
push 0x1b
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
add edi, 0x14
pop ecx
lea esi, [ebp - 0x150]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
pop ecx
add edi, 0x2c
lea esi, [ebp - 0x104]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov byte [eax + 0x44], 3
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov dword [eax + 0x48], 1
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 8
pop ecx
lea esi, [eax + 0x3c]
add edi, 0x4c
push 0xe
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x14], ecx
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
add edi, 0x18
pop ecx
lea esi, [ebp - 0x120]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
add edi, 0x30
pop ecx
lea esi, [ebp - 0x150]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov dword [eax + 0x48], 1
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
and dword [eax + 0x4c], 0
mov eax, ebx
call fcn.00517753
push 0xb
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
add edi, 0x14
push 6
pop ecx
lea esi, [ebp - 0x28]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
add edi, 0x2c
push 6
pop ecx
lea esi, [ebp - 0x104]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [ebp - 8]
mov byte [eax + 0x44], cl
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x48], ecx
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
lea esi, [eax + 0x3c]
push 8
add edi, 0x4c
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov ecx, dword [eax + 4]
xor eax, eax
cmp dword [ebp + 0x10], eax
mov dword [ecx + 0x6c], eax
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x70], eax
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x74], eax
mov ecx, dword [ebx + 0xa0]
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x78], eax
je 0x51d78a
push 7
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
add edi, 0x14
push 6
pop ecx
lea esi, [ebp - 0x28]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
add edi, 0x2c
push 6
pop ecx
lea esi, [ebp - 0x28]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
add edi, 0x44
pop ecx
lea esi, [ebp - 0xec]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
and dword [eax + 0x5c], 0
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
and dword [eax + 0x60], 0
mov eax, dword [ebx + 0xa0]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 0xc8]
mov dword [eax + 0x64], ecx
push dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
push ebx
call fcn.005177ef
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 0x18]
cmp dword [eax + 0xe4], 0
je 0x51d816
mov eax, ebx
call fcn.00517753
push 0x27
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 6
pop ecx
add edi, 0x14
lea esi, [ebp - 0x1d0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
push 0
push 0xb
add eax, 0x2c
pop ecx
call fcn.0051dfb1
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
and dword [eax + 0x44], 0
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov cl, byte [ebp - 0x4d]
mov byte [eax + 0x48], cl
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 8
lea esi, [eax + 0x3c]
add edi, 0x4c
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa0]
inc dword [eax + 0x14]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 0x14]
cmp eax, dword [ebx + 8]
mov eax, dword [ebx + 0xa0]
jb 0x518830
xor esi, esi
mov dword [eax + 0x54], esi
mov eax, dword [ebx + 0xa0]
push esi
mov byte [eax + 0x58], 0xe4
mov eax, dword [ebx + 0xa0]
push 0x17
add eax, 0x3c
pop ecx
call fcn.0051dfb1
cmp dword [ebp - 0x34], 0xffff0200
jae 0x51d8ce
mov eax, ebx
call fcn.00517753
push 0x27
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
push esi
push 7
add eax, 0x14
pop ecx
call fcn.0051dfb1
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
push esi
push 2
add eax, 0x2c
pop ecx
call fcn.0051dfb1
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov dword [eax + 0x44], esi
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
mov byte [eax + 0x48], 0xf
mov eax, dword [ebx + 0xa0]
mov edi, dword [eax + 4]
push 8
add edi, 0x4c
lea esi, [eax + 0x3c]
pop ecx
rep movsd dword es:[edi], dword [esi]
or dword [ebx + 0x50], 1
xor esi, esi
cmp dword [ebp - 0x8c], esi
je 0x51d8fb
mov eax, ebx
call fcn.00517753
push 1
mov eax, ebx
call fcn.005177a4
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 4]
push esi
push 8
add eax, 0x14
pop ecx
call fcn.0051dfb1
mov eax, ebx
call fcn.00517764
push 3
mov eax, ebx
call fcn.005177a4
mov eax, ebx
call fcn.00517678
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x14]
cmp eax, esi
mov dword [ebx + 0xa0], esi
je 0x51d92b
push eax
call fcn.0040f7da
mov dword [ebx + 0x14], esi
mov eax, dword [ebx + 0x18]
cmp eax, esi
je 0x51d93b
push eax
call fcn.0040f7da
mov dword [ebx + 0x18], esi
mov dword [ebx + 4], esi
pop edi
pop esi
pop ebx
leave
ret 0xc