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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x778
mov eax, dword [0x6f2220]
mov dword [ebp - 4], eax
push esi
push edi
mov dword [ebp - 0x724], ecx
mov eax, dword [ebp - 0x724]
add eax, 0x9c
mov dword [ebp - 0x6ac], eax
mov ecx, dword [ebp - 0x6ac]
mov edx, dword [ebp - 0x6ac]
mov eax, dword [ecx + 8]
sub eax, dword [edx + 4]
jne 0x519685
mov ecx, 1
test ecx, ecx
je 0x519669
jmp 0x519680
mov edx, dword [ebp - 0x724]
add edx, 0x28
push edx
push 0x6a3258
call fcn.00426670
add esp, 8
jmp 0x51ace6
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x9c]
movsx edx, byte [ecx]
mov dword [0x711cc8], edx
cmp dword [0x711cc8], 0xc
je 0x5196e7
push 0xe
mov eax, dword [ebp - 0x724]
add eax, 0x28
push eax
push 0x6a3248
call fcn.00688234
add esp, 0xc
test eax, eax
jne 0x5196e7
mov ecx, 1
test ecx, ecx
je 0x5196cb
jmp 0x5196e2
mov edx, dword [ebp - 0x724]
add edx, 0x28
push edx
push 0x6a3230
call fcn.00426670
add esp, 8
jmp 0x51ace6
cmp dword [0x711cc8], 0xc
jne 0x51973f
push 0xa4
lea eax, [ebp - 0x2c0]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.00535970
push 0x9c
lea ecx, [ebp - 0x2b8]
push ecx
mov edx, dword [ebp - 0x2c0]
xor edx, 0x35bfd8a4
push edx
call fcn.0052ebb0
add esp, 0xc
mov ecx, dword [ebp - 0x724]
mov dword [ecx + 0xb8], eax
jmp 0x519a3e
cmp dword [0x711cc8], 8
jl 0x519a0e
mov ecx, 0x29
xor eax, eax
lea edi, [ebp - 0x2c0]
rep stosd dword es:[edi], eax
push 4
lea edx, [ebp - 0x2c0]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.00535970
cmp dword [0x711cc8], 0xc
jl 0x519798
push 0x40
lea eax, [ebp - 0x2b8]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.00535970
cmp dword [0x711cc8], 0xa
jl 0x5197bb
push 4
lea ecx, [ebp - 0x2bc]
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.00535970
mov edx, dword [ebp - 0x2c0]
xor edx, 0x35bfd8a4
mov eax, dword [ebp - 0x724]
mov dword [eax + 0xb8], edx
push 4
lea ecx, [ebp - 0x278]
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
cmp dword [0x711cc8], 9
jl 0x519812
push 0x18
lea edx, [ebp - 0x274]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
jmp 0x51982c
push 0xc
lea eax, [ebp - 0x274]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 2
lea ecx, [ebp - 0x25c]
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 2
lea edx, [ebp - 0x25a]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 2
lea eax, [ebp - 0x258]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
cmp dword [0x711cc8], 9
jl 0x5198d3
push 2
lea ecx, [ebp - 0x256]
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 4
lea edx, [ebp - 0x254]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 4
lea eax, [ebp - 0x250]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
jmp 0x519921
push 2
lea ecx, [ebp - 0x4e0]
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 2
lea edx, [ebp - 0x254]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 2
lea eax, [ebp - 0x250]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 2
lea ecx, [ebp - 0x24c]
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 1
lea edx, [ebp - 0x24a]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
cmp dword [0x711cc8], 9
jl 0x519978
push 1
lea eax, [ebp - 0x249]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 2
lea ecx, [ebp - 0x248]
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 2
lea edx, [ebp - 0x246]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
cmp dword [0x711cc8], 0xb
jl 0x5199e9
push 0xc
lea eax, [ebp - 0x244]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
push 0xc
lea ecx, [ebp - 0x238]
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
cmp dword [0x711cc8], 9
jl 0x519a0c
push 0x10
lea edx, [ebp - 0x22c]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
jmp 0x519a3e
mov eax, 1
test eax, eax
je 0x519a19
jmp 0x519a39
push 0xc
mov ecx, dword [0x711cc8]
push ecx
mov edx, dword [ebp - 0x724]
add edx, 0x28
push edx
push 0x6a31f4
call fcn.00426670
add esp, 0x10
jmp 0x51ace6
cmp dword [0x711cc8], 0xc
jl 0x519abc
push 0x40
lea eax, [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0x560]
push ecx
push 4
call fcn.0052e910
lea edx, [ebp - 0x520]
push edx
mov eax, dword [ebp - 0x724]
add eax, 0x28
push eax
call fcn.0052d6a0
add esp, 8
lea ecx, [ebp - 0x520]
push ecx
lea edx, [ebp - 0x560]
push edx
call fcn.00679d7f
add esp, 8
test eax, eax
je 0x519abc
mov eax, 1
test eax, eax
je 0x519a9c
jmp 0x519ab7
lea ecx, [ebp - 0x520]
push ecx
lea edx, [ebp - 0x560]
push edx
push 0x6a31b8
call fcn.00426670
add esp, 0xc
jmp 0x51ace6
mov eax, dword [ebp - 0x724]
add eax, 0xc0
mov ecx, dword [ebp - 0x244]
mov dword [eax], ecx
mov edx, dword [ebp - 0x240]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x23c]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x724]
add edx, 0xcc
mov eax, dword [ebp - 0x238]
mov dword [edx], eax
mov ecx, dword [ebp - 0x234]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x230]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x254]
add ecx, 7
and ecx, 0xfffffff8
movzx edx, byte [ebp - 0x2bf]
imul edx, edx, 0x44
add edx, 7
and edx, 0xfffffff8
add edx, 0x10
movzx eax, byte [ebp - 0x2be]
and eax, 1
imul edx, eax
add ecx, edx
movzx edx, word [ebp - 0x248]
shl edx, 6
add edx, 7
and edx, 0xfffffff8
add ecx, edx
movzx eax, byte [ebp - 0x2bd]
imul eax, eax, 0x8c
add eax, 7
and eax, 0xfffffff8
add ecx, eax
movzx edx, word [ebp - 0x25a]
add edx, 7
and edx, 0xfffffff8
add ecx, edx
movzx eax, byte [ebp - 0x24a]
imul eax, eax, 0x18
add eax, 7
and eax, 0xfffffff8
add ecx, eax
movzx edx, word [ebp - 0x258]
imul edx, edx, 0x14
add edx, 7
and edx, 0xfffffff8
add ecx, edx
movzx eax, word [ebp - 0x258]
movzx edx, byte [ebp - 0x2bf]
imul eax, edx
lea eax, [eax*4 + 7]
and eax, 0xfffffff8
add ecx, eax
movzx edx, word [ebp - 0x24c]
imul edx, edx, 0x28
add edx, 7
and edx, 0xfffffff8
add ecx, edx
mov dword [ebp - 0x2cc], ecx
cmp dword [ebp - 0x250], 0
je 0x519be5
mov eax, dword [ebp - 0x250]
add eax, 0xb
and eax, 0xfffffff8
add eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2cc], eax
mov ecx, dword [ebp - 0x2cc]
push ecx
call fcn.00676bc6
add esp, 4
mov edx, dword [ebp - 0x724]
mov dword [edx + 0xdc], eax
mov eax, dword [ebp - 0x724]
cmp dword [eax + 0xdc], 0
jne 0x519c14
jmp 0x51ace6
mov ecx, dword [ebp - 0x254]
add ecx, 7
and ecx, 0xfffffff8
mov edx, dword [ebp - 0x724]
add ecx, dword [edx + 0xdc]
mov dword [ebp - 0x2c4], ecx
movzx eax, byte [ebp - 0x2be]
and eax, 2
je 0x519d37
mov ecx, dword [ebp - 0x724]
xor edx, edx
cmp dword [ecx + 0xd8], 0
sete dl
movzx eax, dl
test eax, eax
je 0x519d37
mov ecx, dword [ebp - 0x724]
add ecx, 0x28
mov dword [ebp - 0x728], ecx
mov edx, dword [ebp - 0x728]
inc edx
mov dword [ebp - 0x72c], edx
mov eax, dword [ebp - 0x728]
mov cl, byte [eax]
mov byte [ebp - 0x72d], cl
inc dword [ebp - 0x728]
cmp byte [ebp - 0x72d], 0
jne 0x519c7b
mov edx, dword [ebp - 0x728]
sub edx, dword [ebp - 0x72c]
mov dword [ebp - 0x734], edx
mov eax, dword [ebp - 0x734]
sub eax, 3
mov dword [ebp - 0x568], eax
mov ecx, dword [ebp - 0x568]
mov esi, dword [ebp - 0x724]
add esi, 0x28
lea edi, [ebp - 0x670]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x568]
mov byte [ebp + eax - 0x670], 0
lea ecx, [ebp - 0x670]
push ecx
call fcn.005609a0
add esp, 4
mov dword [ebp - 0x564], eax
cmp dword [ebp - 0x564], 0
je 0x519d37
lea edx, [ebp - 0x6b4]
mov dword [ebp - 0x6b0], edx
mov eax, dword [ebp - 0x6b0]
mov ecx, dword [ebp - 0x564]
mov edx, dword [ecx + 0x34]
mov dword [eax], edx
mov eax, dword [ebp - 0x724]
mov ecx, dword [ebp - 0x6b4]
mov dword [eax + 0xd8], ecx
movzx edx, byte [ebp - 0x2be]
and edx, 1
je 0x519dd4
mov eax, dword [ebp - 0x724]
mov ecx, dword [ebp - 0x2c4]
mov dword [eax + 0x68], ecx
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x68]
mov ecx, dword [ebp - 0x724]
mov dword [eax], ecx
movzx edx, byte [ebp - 0x2bf]
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x68]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x2c4]
add edx, 0x10
mov dword [ebp - 0x2c4], edx
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x68]
mov edx, dword [ebp - 0x2c4]
mov dword [ecx + 8], edx
movzx eax, byte [ebp - 0x2bf]
imul eax, eax, 0x44
add eax, 7
and eax, 0xfffffff8
add eax, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
push ecx
mov edx, dword [ebp - 0x724]
mov ecx, dword [edx + 0x68]
call fcn.00510320
jmp 0x519de1
mov eax, dword [ebp - 0x724]
mov dword [eax + 0x68], 0
mov ecx, dword [ebp - 0x724]
mov edx, dword [ebp - 0x724]
mov dword [ecx + 0x6c], edx
mov eax, dword [ebp - 0x724]
mov cx, word [ebp - 0x248]
mov word [eax + 0x70], cx
mov edx, dword [ebp - 0x724]
mov ax, word [ebp - 0x246]
mov word [edx + 0x72], ax
mov ecx, dword [ebp - 0x724]
movzx edx, word [ecx + 0x70]
test edx, edx
jne 0x519e2c
mov eax, dword [ebp - 0x724]
mov word [eax + 0x72], 0
mov ecx, dword [ebp - 0x724]
mov edx, dword [ebp - 0x2c4]
mov dword [ecx + 0x74], edx
movzx eax, word [ebp - 0x248]
shl eax, 6
add eax, 7
and eax, 0xfffffff8
add eax, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
push ecx
mov ecx, dword [ebp - 0x724]
add ecx, 0x6c
call fcn.005103e0
mov edx, dword [ebp - 0x724]
mov eax, dword [ebp - 0x2c4]
mov dword [edx + 0x7c], eax
movzx ecx, byte [ebp - 0x2bd]
imul ecx, ecx, 0x8c
add ecx, 7
and ecx, 0xfffffff8
add ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], ecx
mov edx, dword [ebp - 0x2c4]
mov dword [ebp - 0x218], edx
movzx eax, word [ebp - 0x25a]
add eax, 7
and eax, 0xfffffff8
add eax, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], eax
movzx ecx, byte [ebp - 0x2bd]
mov edx, dword [ebp - 0x724]
mov dword [edx + 0x80], ecx
mov dword [ebp - 0x674], 0
jmp 0x519ef3
mov eax, dword [ebp - 0x674]
add eax, 1
mov dword [ebp - 0x674], eax
movzx ecx, byte [ebp - 0x2bd]
cmp dword [ebp - 0x674], ecx
jge 0x519fbc
mov edx, dword [ebp - 0x674]
imul edx, edx, 0x8c
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ebp - 0x724]
mov dword [edx + ecx], eax
mov ecx, dword [ebp - 0x674]
imul ecx, ecx, 0x8c
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x7c]
mov edx, dword [ebp - 0x218]
mov dword [eax + ecx + 0x74], edx
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x24]
push ecx
mov edx, dword [ebp - 0x724]
add edx, 0x9c
push edx
mov ecx, dword [ebp - 0x674]
imul ecx, ecx, 0x8c
mov eax, dword [ebp - 0x724]
add ecx, dword [eax + 0x7c]
call fcn.00510970
test eax, eax
jne 0x519f92
mov ecx, dword [ebp - 0x674]
add ecx, 1
mov edx, dword [ebp - 0x724]
mov dword [edx + 0x80], ecx
jmp 0x51ace6
mov eax, dword [ebp - 0x674]
imul eax, eax, 0x8c
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0x7c]
mov ecx, dword [ebp - 0x218]
add ecx, dword [edx + eax + 0x70]
mov dword [ebp - 0x218], ecx
jmp 0x519ee4
mov edx, dword [ebp - 0x724]
mov eax, dword [ebp - 0x2c4]
mov dword [edx + 0x84], eax
movzx ecx, byte [ebp - 0x24a]
imul ecx, ecx, 0x18
add ecx, 7
and ecx, 0xfffffff8
add ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], ecx
mov edx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c8], edx
movzx eax, word [ebp - 0x258]
imul eax, eax, 0x14
add eax, 7
and eax, 0xfffffff8
add eax, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], eax
mov ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x4dc], ecx
movzx edx, word [ebp - 0x258]
movzx eax, byte [ebp - 0x2bf]
imul edx, eax
lea ecx, [edx*4 + 7]
and ecx, 0xfffffff8
add ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], ecx
mov edx, dword [ebp - 0x2c4]
mov dword [ebp - 0x214], edx
movzx eax, word [ebp - 0x24c]
imul eax, eax, 0x28
add eax, 7
and eax, 0xfffffff8
add eax, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], eax
movzx ecx, byte [ebp - 0x24a]
mov edx, dword [ebp - 0x724]
mov dword [edx + 0x88], ecx
mov dword [ebp - 0x678], 0
jmp 0x51a09b
mov eax, dword [ebp - 0x678]
add eax, 1
mov dword [ebp - 0x678], eax
mov ecx, dword [ebp - 0x724]
mov edx, dword [ebp - 0x678]
cmp edx, dword [ecx + 0x88]
jge 0x51a1a2
mov eax, dword [ebp - 0x678]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0x84]
mov ecx, dword [ebp - 0x724]
mov dword [eax + edx], ecx
mov edx, dword [ebp - 0x678]
imul edx, edx, 0x18
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x84]
mov eax, dword [ebp - 0x2c8]
mov dword [ecx + edx + 4], eax
mov ecx, dword [ebp - 0x678]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x84]
mov edx, dword [ebp - 0x4dc]
mov dword [eax + ecx + 8], edx
mov eax, dword [ebp - 0x214]
push eax
movzx ecx, byte [ebp - 0x2bf]
push ecx
mov edx, dword [ebp - 0x724]
add edx, 0x9c
push edx
mov ecx, dword [ebp - 0x678]
imul ecx, ecx, 0x18
mov eax, dword [ebp - 0x724]
add ecx, dword [eax + 0x84]
call fcn.00512820
mov ecx, dword [ebp - 0x678]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x84]
mov ecx, dword [eax + ecx + 0xc]
imul ecx, ecx, 0x14
add ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x2c8], ecx
movzx edx, byte [ebp - 0x2bf]
mov eax, dword [ebp - 0x678]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x724]
mov ecx, dword [ecx + 0x84]
imul edx, dword [ecx + eax + 0xc]
mov eax, dword [ebp - 0x4dc]
lea ecx, [eax + edx*4]
mov dword [ebp - 0x4dc], ecx
jmp 0x51a08c
movzx edx, word [ebp - 0x24c]
imul edx, edx, 0x28
push edx
mov eax, dword [ebp - 0x214]
push eax
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
cmp dword [ebp - 0x250], 0
je 0x51a299
mov ecx, dword [ebp - 0x724]
mov edx, dword [ebp - 0x2c4]
mov dword [ecx + 0x90], edx
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x90]
mov edx, dword [ebp - 0x724]
mov dword [ecx], edx
mov eax, dword [ebp - 0x250]
push eax
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0x90]
add edx, 4
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
cmp dword [0x711cc8], 0xb
jge 0x51a27f
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x90]
add ecx, 8
mov edx, dword [ebp - 0x724]
add edx, 0xc0
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x90]
add eax, 0x14
mov ecx, dword [ebp - 0x724]
add ecx, 0xcc
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x250]
add ecx, 0xb
and ecx, 0xfffffff8
add ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c4], ecx
jmp 0x51a2a9
mov edx, dword [ebp - 0x724]
mov dword [edx + 0x90], 0
mov eax, dword [ebp - 0x254]
push eax
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0xdc]
push edx
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005361a0
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0xdc]
add ecx, dword [ebp - 0x278]
mov edx, dword [ebp - 0x724]
mov dword [edx + 0x8c], ecx
mov eax, dword [ebp - 0x724]
movzx ecx, word [eax + 0x72]
cmp ecx, 1
jle 0x51a322
mov edx, dword [ebp - 0x724]
cmp dword [edx + 0x88], 0
je 0x51a322
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x84]
mov edx, dword [ebp - 0x724]
mov eax, dword [ecx + 4]
mov dword [edx + 0x78], eax
mov dword [ebp - 0x67c], 0
jmp 0x51a33d
mov ecx, dword [ebp - 0x67c]
add ecx, 1
mov dword [ebp - 0x67c], ecx
mov edx, dword [ebp - 0x724]
movzx eax, word [edx + 0x70]
cmp dword [ebp - 0x67c], eax
jge 0x51a470
mov ecx, dword [ebp - 0x67c]
shl ecx, 6
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x74]
mov ecx, dword [eax + ecx + 0x34]
mov edx, dword [ebp - 0x67c]
shl edx, 6
mov eax, dword [ebp - 0x724]
mov eax, dword [eax + 0x74]
mov ecx, dword [ecx]
mov dword [eax + edx + 0x10], ecx
mov edx, dword [ebp - 0x67c]
shl edx, 6
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x74]
mov edx, dword [ecx + edx + 0x34]
mov eax, dword [ebp - 0x67c]
shl eax, 6
mov ecx, dword [ebp - 0x724]
mov ecx, dword [ecx + 0x74]
mov edx, dword [edx + 8]
mov dword [ecx + eax + 0x18], edx
mov eax, dword [ebp - 0x67c]
shl eax, 6
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0x74]
mov eax, dword [edx + eax + 0x34]
mov ecx, dword [ebp - 0x67c]
shl ecx, 6
mov edx, dword [ebp - 0x724]
mov edx, dword [edx + 0x74]
mov eax, dword [eax + 0xc]
mov dword [edx + ecx + 0x1c], eax
mov ecx, dword [ebp - 0x67c]
shl ecx, 6
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x74]
mov ecx, dword [eax + ecx + 0x34]
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ebp - 0x67c]
shl ecx, 6
mov esi, dword [ebp - 0x724]
mov esi, dword [esi + 0x74]
mov dword [esi + ecx + 0x20], edx
mov dword [esi + ecx + 0x24], eax
mov edx, dword [ebp - 0x67c]
shl edx, 6
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0x74]
mov edx, dword [ecx + edx + 0x34]
add edx, 0x18
mov eax, dword [ebp - 0x67c]
shl eax, 6
mov ecx, dword [ebp - 0x724]
mov ecx, dword [ecx + 0x74]
lea eax, [ecx + eax + 0x28]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x67c]
shl ecx, 6
mov eax, dword [ebp - 0x724]
add ecx, dword [eax + 0x74]
call fcn.005104e0
jmp 0x51a32e
lea ecx, [ebp - 0x3d0]
push ecx
lea edx, [ebp - 0x108]
push edx
lea eax, [ebp - 0x4d8]
push eax
lea ecx, [ebp - 0x3d4]
push ecx
mov edx, dword [ebp - 0x724]
add edx, 0x28
push edx
call fcn.0067800b
add esp, 0x14
lea eax, [ebp - 0x4d8]
push eax
lea ecx, [ebp - 0x3d4]
push ecx
push 0x6a31ac
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x210]
mov dword [ebp - 0x738], eax
xor ecx, ecx
shl ecx, 6
add ecx, 0x7e0d70
mov dword [ebp - 0x73c], ecx
mov edx, dword [ebp - 0x73c]
mov dword [ebp - 0x740], edx
mov eax, dword [ebp - 0x738]
mov cl, byte [eax]
mov byte [ebp - 0x741], cl
mov edx, dword [ebp - 0x73c]
mov al, byte [ebp - 0x741]
mov byte [edx], al
mov ecx, dword [ebp - 0x738]
add ecx, 1
mov dword [ebp - 0x738], ecx
mov edx, dword [ebp - 0x73c]
add edx, 1
mov dword [ebp - 0x73c], edx
cmp byte [ebp - 0x741], 0
jne 0x51a4ea
mov eax, dword [ebp - 0x724]
mov dword [eax + 0xbc], 0
mov dword [ebp - 0x680], 0
jmp 0x51a558
mov ecx, dword [ebp - 0x680]
add ecx, 1
mov dword [ebp - 0x680], ecx
mov edx, dword [ebp - 0x724]
mov eax, dword [ebp - 0x680]
cmp eax, dword [edx + 0x80]
jge 0x51aa43
mov ecx, dword [ebp - 0x680]
imul ecx, ecx, 0x8c
mov edx, dword [ebp - 0x724]
add ecx, dword [edx + 0x7c]
mov dword [ebp - 0x684], ecx
mov eax, dword [ebp - 0x684]
mov ecx, dword [eax + 0x10]
and ecx, 0x20
je 0x51a67f
cmp dword [0x711cc8], 0xb
jl 0x51a60c
mov edx, dword [ebp - 0x684]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x748], eax
mov ecx, dword [ebp - 0x748]
inc ecx
mov dword [ebp - 0x74c], ecx
mov edx, dword [ebp - 0x748]
mov al, byte [edx]
mov byte [ebp - 0x74d], al
inc dword [ebp - 0x748]
cmp byte [ebp - 0x74d], 0
jne 0x51a5c2
mov ecx, dword [ebp - 0x748]
sub ecx, dword [ebp - 0x74c]
mov dword [ebp - 0x754], ecx
mov edx, dword [ebp - 0x684]
mov eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0x754]
lea edx, [eax + ecx + 1]
mov dword [ebp - 0x758], edx
jmp 0x51a670
mov eax, dword [ebp - 0x684]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x75c], ecx
mov edx, dword [ebp - 0x75c]
inc edx
mov dword [ebp - 0x760], edx
mov eax, dword [ebp - 0x75c]
mov cl, byte [eax]
mov byte [ebp - 0x761], cl
inc dword [ebp - 0x75c]
cmp byte [ebp - 0x761], 0
jne 0x51a628
mov edx, dword [ebp - 0x75c]
sub edx, dword [ebp - 0x760]
mov dword [ebp - 0x768], edx
mov eax, dword [ebp - 0x684]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x768]
lea eax, [ecx + edx + 1]
mov dword [ebp - 0x758], eax
mov ecx, dword [ebp - 0x684]
mov edx, dword [ebp - 0x758]
mov dword [ecx + 0x18], edx
mov ecx, 0x71b318
call fcn.004647c0
xor eax, eax
mov dword [0x711ccc], eax
mov dword [0x711cd0], eax
mov ecx, dword [ebp - 0x684]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 8]
and eax, 0x20000
neg eax
sbb eax, eax
and eax, 2
add eax, 0x10000
push eax
mov ecx, dword [ebp - 0x684]
mov edx, dword [ecx + 0x14]
push edx
push 0
mov ecx, dword [ebp - 0x684]
call fcn.00510ea0
push 0x10000
mov eax, dword [ebp - 0x684]
mov ecx, dword [eax + 0x18]
push ecx
push 1
mov ecx, dword [ebp - 0x684]
call fcn.00510ea0
mov edx, dword [ebp - 0x724]
xor eax, eax
cmp dword [edx + 0xd8], 0
sete al
movzx ecx, al
test ecx, ecx
jne 0x51a746
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x24]
and eax, 2
jne 0x51a720
mov ecx, dword [ebp - 0x684]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 8]
and eax, 0x200
je 0x51a746
push ecx
mov dword [ebp - 0x704], esp
mov ecx, dword [ebp - 0x704]
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0xd8]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x684]
call fcn.0056b240
xor ecx, ecx
cmp dword [0x71b32c], 0
sete cl
movzx edx, cl
test edx, edx
jne 0x51a864
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x708], ecx
cmp dword [0x71b330], 0x10
jb 0x51a783
mov edx, dword [0x71b31c]
mov dword [ebp - 0x76c], edx
jmp 0x51a78d
mov dword [ebp - 0x76c], 0x71b31c
mov eax, dword [ebp - 0x708]
push eax
push 0x10000
mov ecx, dword [ebp - 0x76c]
push ecx
call fcn.005783c0
add esp, 0xc
mov dword [ebp - 0x688], eax
mov edx, dword [ebp - 0x684]
mov eax, dword [ebp - 0x688]
mov dword [edx + 0x5c], eax
cmp dword [ebp - 0x688], 0
jne 0x51a808
mov ecx, 1
test ecx, ecx
je 0x51a7d1
jmp 0x51a806
cmp dword [0x71b330], 0x10
jb 0x51a7e8
mov edx, dword [0x71b31c]
mov dword [ebp - 0x770], edx
jmp 0x51a7f2
mov dword [ebp - 0x770], 0x71b31c
mov eax, dword [ebp - 0x770]
push eax
push 0x6a317c
call fcn.00426670
add esp, 8
jmp 0x51a864
mov ecx, dword [ebp - 0x688]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x70c], edx
mov eax, dword [ebp - 0x70c]
and eax, 0xfffffffe
je 0x51a864
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0xbc]
add edx, 1
mov eax, dword [ebp - 0x724]
mov dword [eax + 0xbc], edx
mov ecx, dword [ebp - 0x688]
add ecx, 0x84
push ecx
push fcn.0051ad00
mov edx, dword [ebp - 0x724]
push edx
mov ecx, dword [ebp - 0x684]
add ecx, 0x60
call fcn.00572ab0
mov dword [ebp - 0x68c], 0
jmp 0x51a87f
mov eax, dword [ebp - 0x68c]
add eax, 1
mov dword [ebp - 0x68c], eax
cmp dword [ebp - 0x68c], 2
jge 0x51aa3e
mov ecx, dword [ebp - 0x68c]
cmp dword [ecx*4 + 0x711ccc], 0
jne 0x51a89e
jmp 0x51a870
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 8]
mov dword [ebp - 0x710], eax
mov ecx, dword [ebp - 0x68c]
imul ecx, ecx, 0x1c
add ecx, 0x71b2e0
mov dword [ebp - 0x714], ecx
mov edx, dword [ebp - 0x714]
cmp dword [edx + 0x18], 0x10
jb 0x51a8df
mov eax, dword [ebp - 0x714]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x774], ecx
jmp 0x51a8ee
mov edx, dword [ebp - 0x714]
add edx, 4
mov dword [ebp - 0x774], edx
mov eax, dword [ebp - 0x710]
push eax
mov ecx, dword [ebp - 0x68c]
mov edx, dword [ecx*4 + 0x711ccc]
push edx
mov eax, dword [ebp - 0x774]
push eax
call fcn.00577030
add esp, 0xc
mov dword [ebp - 0x690], eax
mov ecx, dword [ebp - 0x68c]
mov edx, dword [ebp - 0x684]
mov eax, dword [ebp - 0x690]
mov dword [edx + ecx*4 + 0x34], eax
cmp dword [ebp - 0x690], 0
jne 0x51a9d4
mov ecx, 1
test ecx, ecx
je 0x51a946
jmp 0x51a99b
mov edx, dword [ebp - 0x68c]
imul edx, edx, 0x1c
add edx, 0x71b2e0
mov dword [ebp - 0x718], edx
mov eax, dword [ebp - 0x718]
cmp dword [eax + 0x18], 0x10
jb 0x51a978
mov ecx, dword [ebp - 0x718]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x778], edx
jmp 0x51a987
mov eax, dword [ebp - 0x718]
add eax, 4
mov dword [ebp - 0x778], eax
mov ecx, dword [ebp - 0x778]
push ecx
push 0x6a314c
call fcn.00426670
add esp, 8
mov edx, dword [0x7e0b78]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x71c]
mov ecx, dword [eax + 0x20]
add ecx, 1
mov edx, dword [ebp - 0x71c]
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0x68c]
mov ecx, dword [ebp - 0x684]
mov edx, dword [0x7e0b78]
mov dword [ecx + eax*4 + 0x34], edx
jmp 0x51aa39
mov eax, dword [ebp - 0x690]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x720], ecx
mov edx, dword [ebp - 0x720]
and edx, 0xfffffffe
je 0x51aa39
mov eax, dword [ebp - 0x724]
mov ecx, dword [eax + 0xbc]
add ecx, 1
mov edx, dword [ebp - 0x724]
mov dword [edx + 0xbc], ecx
mov eax, dword [ebp - 0x690]
add eax, 0x84
push eax
push fcn.0051ad00
mov ecx, dword [ebp - 0x724]
push ecx
mov edx, dword [ebp - 0x68c]
shl edx, 4
mov eax, dword [ebp - 0x684]
lea ecx, [eax + edx + 0x3c]
call fcn.00572ab0
jmp 0x51a870
jmp 0x51a549
mov dword [ebp - 0x680], 0
jmp 0x51aa5e
mov ecx, dword [ebp - 0x680]
add ecx, 1
mov dword [ebp - 0x680], ecx
mov edx, dword [ebp - 0x724]
mov eax, dword [ebp - 0x680]
cmp eax, dword [edx + 0x88]
jge 0x51acad
mov ecx, dword [ebp - 0x680]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x84]
mov dword [eax + ecx + 0x14], 0
mov ecx, dword [ebp - 0x680]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x84]
mov ecx, dword [eax + ecx + 0x10]
movsx edx, byte [ecx]
test edx, edx
je 0x51ab20
push 0x6a3144
mov eax, dword [ebp - 0x680]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0x84]
mov eax, dword [edx + eax + 0x10]
push eax
call fcn.00674dd0
add esp, 8
mov dword [ebp - 0x694], eax
cmp dword [ebp - 0x694], 0
je 0x51ab20
mov ecx, dword [ebp - 0x694]
add ecx, 7
mov dword [ebp - 0x694], ecx
mov edx, dword [ebp - 0x694]
push edx
call fcn.00674d3e
add esp, 4
mov ecx, dword [ebp - 0x680]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x724]
mov edx, dword [edx + 0x84]
mov dword [edx + ecx + 0x14], eax
mov dword [ebp - 0x698], 0
jmp 0x51ab3b
mov eax, dword [ebp - 0x698]
add eax, 1
mov dword [ebp - 0x698], eax
mov ecx, dword [ebp - 0x680]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x724]
mov eax, dword [edx + 0x84]
mov edx, dword [ebp - 0x698]
cmp edx, dword [eax + ecx + 0xc]
jge 0x51aca8
mov eax, dword [ebp - 0x680]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0x84]
mov ecx, dword [ebp - 0x698]
imul ecx, ecx, 0x14
add ecx, dword [edx + eax + 4]
mov dword [ebp - 0x69c], ecx
mov edx, dword [ebp - 0x69c]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x51ac7c
push 0x6a3134
mov edx, dword [ebp - 0x69c]
mov eax, dword [edx + 4]
push eax
call fcn.00674dd0
add esp, 8
mov ecx, dword [ebp - 0x69c]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x69c]
cmp dword [edx + 8], 0
je 0x51abdd
mov eax, dword [ebp - 0x69c]
mov ecx, dword [eax + 8]
add ecx, 0xe
mov edx, dword [ebp - 0x69c]
mov dword [edx + 8], ecx
push 0x6a312c
mov eax, dword [ebp - 0x69c]
mov ecx, dword [eax + 4]
push ecx
call fcn.00674dd0
add esp, 8
mov edx, dword [ebp - 0x69c]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x69c]
cmp dword [eax + 0xc], 0
je 0x51ac1e
mov ecx, dword [ebp - 0x69c]
mov edx, dword [ecx + 0xc]
add edx, 7
mov eax, dword [ebp - 0x69c]
mov dword [eax + 0xc], edx
push 0x6a3124
mov ecx, dword [ebp - 0x69c]
mov edx, dword [ecx + 4]
push edx
call fcn.00674dd0
add esp, 8
mov dword [ebp - 0x6a0], eax
cmp dword [ebp - 0x6a0], 0
je 0x51ac6d
mov eax, dword [ebp - 0x6a0]
add eax, 8
mov dword [ebp - 0x6a0], eax
mov ecx, dword [ebp - 0x6a0]
push ecx
call fcn.00676bd8
add esp, 4
mov edx, dword [ebp - 0x69c]
fstp dword [edx + 0x10]
jmp 0x51ac7a
mov eax, dword [ebp - 0x69c]
mov dword [eax + 0x10], 0xbf800000
jmp 0x51aca3
mov ecx, dword [ebp - 0x69c]
mov dword [ecx + 8], 0
mov edx, dword [ebp - 0x69c]
mov dword [edx + 0xc], 0
mov eax, dword [ebp - 0x69c]
mov dword [eax + 0x10], 0xbf800000
jmp 0x51ab2c
jmp 0x51aa4f
mov ecx, dword [ebp - 0x724]
add ecx, 0x9c
call fcn.005360b0
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx + 0xbc]
add edx, 1
mov eax, dword [ebp - 0x724]
mov dword [eax + 0xbc], edx
mov ecx, dword [ebp - 0x724]
call fcn.0051ad00
jmp 0x51acf1
mov ecx, dword [ebp - 0x724]
call fcn.00519430
mov ecx, dword [ebp - 4]
call fcn.00674e87
pop edi
pop esi
mov esp, ebp
pop ebp
ret