Function at 0x47da70
Capabilities:
Get geographical location
Reference sql statements

Disassembly:
sub esp, 0x38
push ebx
push ebp
push edi
mov edi, dword [esp + 0x48]
mov ebp, ecx
mov dword [esp + 0x10], ebp
test edi, edi
je 0x47e7ab
mov ebx, dword [esp + 0x4c]
cmp ebx, 0x200
jb 0x47e7ab
mov eax, dword [edi]
and eax, 0xffffff
cmp eax, 0x444d4d
jne 0x47e7ab
mov ecx, dword [edi + 8]
lea eax, [edi + 8]
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x47e7ab
push esi
mov esi, ecx
mov eax, ecx
shr eax, 0x10
and esi, 0xff0000
or esi, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr esi, 8
shl eax, 8
or esi, eax
cmp esi, ebx
jae 0x47e79f
lea eax, [esi + 0x314]
cmp eax, ebx
jae 0x47e79f
mov al, byte [edi + 3]
mov byte [esp + 0x13], al
sub al, 0x30
cmp al, 3
ja 0x47e79f
mov dword [ebp + 0xe920], 8
mov dword [ebp + 0xe964], 0x20
push dword [edi + 0x10]
call fcn.0047e7e0
push dword [edi + 0x18]
mov dword [esp + 0x48], eax
call fcn.0047e7e0
push dword [edi + 0x20]
mov dword [esp + 0x48], eax
call fcn.0047e7e0
add esp, 0xc
test eax, eax
je 0x47db4e
lea ecx, [ebx - 0x50]
cmp eax, ecx
jae 0x47db4e
add eax, edi
jmp 0x47db50
xor eax, eax
add esi, edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], esi
mov ax, word [esi + 0x1f8]
rol ax, 8
movzx eax, ax
mov dword [esp + 0x34], eax
mov dword [ebp + 0xe910], 4
movzx eax, byte [esi + 0x313]
mov dword [ebp + 0xe924], eax
cmp eax, 0x3f
jbe 0x47db92
mov dword [ebp + 0xe924], 0x3f
mov dword [ebp + 0xe904], 0x7d
mov ax, word [esi + 0x2fc]
rol ax, 8
movzx ecx, ax
test ecx, ecx
jne 0x47dbb3
mov ecx, 0x7d
mov al, byte [esi + 0x300]
test al, 0x20
je 0x47dbd3
movzx edx, al
and edx, 0x1f
inc edx
jne 0x47dbcb
mov edx, 4
imul edx, ecx
shr edx, 2
jmp 0x47dc02
test byte [esi + 0x2ff], 0x40
je 0x47dbed
lea eax, [ecx - 1]
cmp eax, 9
ja 0x47dbed
movzx edx, byte [ecx + 0x522947]
jmp 0x47dc02
push 0xe79ac
push 0x369e99
push ecx
call fcn.00478700
add esp, 0xc
mov edx, eax
movzx ecx, byte [esi + 0x301]
mov dword [ebp + 0xe900], ecx
test ecx, ecx
jne 0x47dc1d
mov dword [ebp + 0xe900], 6
cmp edx, 0x21
jae 0x47dc29
mov edx, 0x21
jmp 0x47dc78
cmp edx, 0xff
jbe 0x47dc78
cmp dword [ebp + 0xe900], 3
jbe 0x47dc6b
lea ebx, [ebx]
cmp edx, 0x104
jbe 0x47dc67
mov ecx, dword [ebp + 0xe900]
lea esi, [ecx - 1]
mov eax, esi
mov dword [ebp + 0xe900], esi
imul eax, edx
xor edx, edx
div ecx
mov edx, eax
cmp esi, 3
ja 0x47dc40
mov esi, dword [esp + 0x28]
cmp edx, 0xff
jbe 0x47dc78
mov edx, 0xff
xor edi, edi
mov dword [ebp + 0xe904], edx
mov ebx, 0x100
cmp dword [ebp + 0xe924], edi
jbe 0x47dd11
add esi, 6
lea edx, [ebp + 0x825e]
lea ebx, [ebx]
movzx eax, word [esi - 6]
rol ax, 8
movzx eax, ax
lea ecx, [eax + eax]
mov dword [edx - 0x1a], ecx
movzx eax, word [esi - 4]
rol ax, 8
movzx eax, ax
lea eax, [ecx + eax*2]
mov dword [edx - 0x16], eax
movzx eax, byte [esi]
shl ax, 2
mov word [edx], ax
mov eax, 0x40
mov word [edx + 2], ax
cmp word [edx], bx
jbe 0x47dcdd
mov word [edx], bx
mov cl, byte [esi + 1]
mov eax, pe_nt_image_headers32
shl cl, 2
sub cl, byte [esi + 1]
neg cl
mov word [edx - 2], ax
shl cl, 2
cmp dword [edx - 0x16], 0
mov byte [edx + 6], cl
je 0x47dd02
or word [edx + 4], 2
inc edi
add edx, 0x40
add esi, 8
cmp edi, dword [ebp + 0xe924]
jb 0x47dca0
mov esi, dword [esp + 0x28]
test byte [esi + 0x2ff], 0x20
jne 0x47dd25
or dword [ebp + 0xe90c], 2
cmp byte [esp + 0x13], 0x32
jge 0x47dd71
movzx eax, byte [esi + 0x1fb]
cmp eax, 0x100
jb 0x47dd41
mov eax, 0xff
jmp 0x47dd4a
test eax, eax
jne 0x47dd4a
mov eax, 1
push eax
lea eax, [esi + 0x1fc]
push eax
lea eax, [ebp + 0xd060]
push eax
call sub.MSVCRT.dll_memcpy
movsx eax, byte [esi + 0x2fe]
add esp, 0xc
mov dword [esp + 0x24], eax
jmp 0x47df2e
mov ax, word [esi + 0x208]
rol ax, 8
movzx ecx, ax
lea eax, [ecx - 4]
cmp eax, 0x1c
ja 0x47dd8d
mov dword [ebp + 0xe910], ecx
push dword [esi + 0x1fc]
call fcn.0047e7e0
mov cx, word [esi + 0x1fa]
mov ebp, eax
push dword [esi + 0x200]
rol cx, 8
movzx edi, cx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
call fcn.0047e7e0
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x50]
mov dword [esp + 0x18], edx
test edi, edi
je 0x47ddd7
test edx, edx
je 0x47ddd7
lea ecx, [eax - 2]
cmp edx, ecx
jb 0x47dde0
mov edi, 1
mov dword [esp + 0x20], edi
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x38], esi
test edi, edi
je 0x47def3
xor ecx, ecx
test edx, edx
je 0x47de0f
add eax, 0xfffffffe
cmp edx, eax
jae 0x47de0f
mov eax, dword [esp + 0x4c]
movzx ecx, byte [edx + eax + 1]
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x47de15
xor edi, edi
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x50]
test ebp, ebp
je 0x47dee6
cmp ebp, eax
jae 0x47dee6
shl ecx, 2
sub eax, ebp
cmp ecx, eax
jae 0x47dee2
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0x4c]
push dword [eax + ecx]
call fcn.0047e7e0
mov ebp, eax
add esp, 4
mov eax, dword [esp + 0x50]
test ebp, ebp
je 0x47e1e6
lea ecx, [eax - 0x42a]
cmp ebp, ecx
jae 0x47e1e6
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
add edi, 0xe99c
add eax, ebp
cmp byte [edi], 0
jne 0x47de89
mov ecx, 7
mov esi, eax
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x38]
mov ax, word [eax + 0x28]
rol ax, 8
movzx edx, ax
mov eax, dword [esp + 0x50]
sub eax, ebp
sub eax, 0x2a
shr eax, 1
cmp edx, eax
jae 0x47ded6
test edx, edx
je 0x47ded6
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
add eax, 0x2a
add eax, ebp
mov ebp, dword [esp + 0x34]
movzx ecx, byte [eax + 1]
cmp ecx, ebp
jae 0x47ded0
cmp ebx, 0xff
jae 0x47ded0
mov byte [ebx + edi + 0xd060], cl
inc ebx
add eax, 2
dec edx
jne 0x47deb8
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
inc esi
mov dword [esp + 0x38], esi
cmp esi, edi
jb 0x47ddf0
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
movsx eax, byte [esi + 0x2fe]
mov dword [esp + 0x24], eax
cmp ebx, 0x100
jae 0x47df2e
mov ecx, 0x100
lea edi, [ebp + 0xd060]
sub ecx, ebx
add edi, ebx
mov edx, ecx
or eax, 0xffffffff
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x47e272
cmp dword [ebp + 0xe910], 4
jne 0x47df80
test byte [esi + 0x2ff], 0x40
je 0x47df80
cmp byte [ebx + 0x24], 0
je 0x47df5c
mov dword [ebp + 0xe910], 3
cmp byte [ebx + 0x25], 0
je 0x47df68
dec dword [ebp + 0xe910]
cmp byte [ebx + 0x26], 0
je 0x47df74
dec dword [ebp + 0xe910]
cmp byte [ebx + 0x27], 0
je 0x47df80
dec dword [ebp + 0xe910]
push dword [ebx + 0xc]
call fcn.0047e7e0
push dword [ebx + 0x10]
mov edi, eax
call fcn.0047e7e0
add esp, 8
mov esi, eax
test edi, edi
je 0x47dfd6
test esi, esi
je 0x47dfd6
lea eax, [esi + edi]
cmp eax, edi
jbe 0x47dfd6
cmp eax, dword [esp + 0x50]
ja 0x47dfd6
lea eax, [esi + 1]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [esp + 0x50]
push esi
add ecx, edi
mov dword [ebp + 0xe994], eax
push ecx
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebp + 0xe994]
add esp, 0x10
mov byte [esi + eax], 0
push dword [ebx + 0x2c]
call fcn.0047e7e0
push dword [ebx + 0x30]
mov esi, eax
call fcn.0047e7e0
mov edi, dword [esp + 0x58]
add esp, 8
test esi, esi
je 0x47e02a
test eax, eax
je 0x47e02a
lea ecx, [eax + esi]
cmp ecx, esi
jbe 0x47e02a
cmp ecx, edi
ja 0x47e02a
cmp eax, 0x1f
jbe 0x47e00c
mov eax, 0x1f
push eax
mov eax, dword [esp + 0x50]
add eax, esi
push eax
lea eax, [ebp + 0xe99c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov byte [ebp + 0xe9bb], 0
push dword [ebx + 0x14]
call fcn.0047e7e0
mov esi, eax
add esp, 4
test esi, esi
je 0x47e0d5
mov ax, word [ebx + 0x1a]
mov cx, word [ebx + 0x18]
rol ax, 8
rol cx, 8
movzx ebp, ax
movzx edx, cx
mov dword [esp + 0x30], edx
cmp ebp, 0x100
jae 0x47e0d1
mov ecx, ebp
imul ecx, edx
cmp ecx, edi
jae 0x47e0d1
mov eax, edi
sub eax, ecx
cmp esi, eax
jae 0x47e0d1
mov ebx, dword [esp + 0x4c]
mov eax, ebp
add ebx, esi
mov dword [esp + 0x38], ebp
cmp ebp, 0x20
jbe 0x47e08c
mov eax, 0x20
mov dword [esp + 0x38], eax
xor esi, esi
test edx, edx
je 0x47e0cd
mov ecx, dword [esp + 0x14]
lea edi, [ecx + 0xe9db]
lea esp, [esp]
cmp esi, dword [ecx + 0xe924]
jae 0x47e0bf
push eax
push ebx
lea eax, [edi - 0x1f]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov byte [edi], 0
mov eax, dword [esp + 0x38]
inc esi
add ebx, ebp
add edi, 0x20
cmp esi, edx
jb 0x47e0a0
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebx + 0x44]
mov edx, ecx
mov edi, dword [esp + 0x50]
mov eax, ecx
mov ebx, dword [esp + 0x4c]
and edx, 0xff0000
shr eax, 0x10
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
shl eax, 8
or edx, eax
je 0x47e27a
cmp edx, edi
jae 0x47e27a
mov esi, dword [ebp + 0xe910]
mov ecx, edi
sub ecx, edx
lea eax, [esi*4]
cmp eax, ecx
jae 0x47e27a
xor eax, eax
lea ecx, [edx + ebx]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
test esi, esi
je 0x47e27a
lea esi, [ebp + 0xc1e3]
mov dword [esp + 0x20], esi
lea ebx, [ebx]
push dword [ecx + eax*4]
xor ebp, ebp
xor ebx, ebx
call fcn.0047e7e0
mov edi, eax
add esp, 4
test edi, edi
je 0x47e248
mov eax, dword [esp + 0x50]
add eax, 0xfffffff8
cmp edi, eax
jae 0x47e248
jmp 0x47e180
mov esi, dword [esp + 0x4c]
mov ecx, dword [edi + esi]
mov edx, ecx
mov eax, ecx
and edx, 0xff0000
shr eax, 0x10
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
shl eax, 8
or edx, eax
je 0x47e20b
mov ecx, dword [edi + esi + 4]
mov esi, ecx
and esi, 0xff0000
mov eax, ecx
shr eax, 0x10
or esi, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr esi, 8
shl eax, 8
or esi, eax
cmp edx, 2
je 0x47e1f3
cmp edx, 0x80000001
jne 0x47e1f5
mov ebp, esi
jmp 0x47e1f5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x47dee6
mov ebx, esi
mov eax, dword [esp + 0x50]
add edi, 8
add eax, 0xfffffff8
cmp edi, eax
jb 0x47e180
mov esi, dword [esp + 0x4c]
cmp ebx, 0x14
jbe 0x47e215
mov ebx, 0x14
mov edi, dword [esp + 0x50]
test ebp, ebp
je 0x47e242
cmp ebx, edi
jae 0x47e242
mov eax, edi
sub eax, ebx
cmp ebp, eax
jae 0x47e242
lea eax, [esi + ebp]
mov esi, dword [esp + 0x20]
push 0x14
push eax
lea eax, [esi - 0x13]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov byte [esi], 0
jmp 0x47e24c
mov esi, dword [esp + 0x20]
jmp 0x47e24c
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
add esi, 0x24
mov ebp, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], esi
cmp eax, dword [ebp + 0xe910]
jb 0x47e150
jmp 0x47e276
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x4c]
mov edx, dword [ebp + 0xe924]
mov ecx, edi
lea eax, [edx*4]
sub ecx, eax
mov eax, dword [esp + 0x3c]
cmp eax, ecx
ja 0x47e790
add eax, ebx
xor ebx, ebx
mov dword [esp + 0x30], eax
test edx, edx
je 0x47e396
lea edi, [ebp + 0x8240]
lea ecx, [ecx]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
je 0x47e382
mov esi, ecx
mov eax, ecx
shr eax, 0x10
and esi, 0xff0000
or esi, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr esi, 8
mov ecx, dword [esp + 0x50]
shl eax, 8
or esi, eax
cmp esi, ecx
jae 0x47e37e
lea eax, [esi + 0x15]
cmp eax, ecx
jae 0x47e37e
mov ebp, dword [esp + 0x4c]
push dword [esi + ebp]
call fcn.0047e7e0
mov edx, eax
add esp, 4
cmp edx, 0xf42400
ja 0x47e31a
lea ecx, [esi + 6]
add ecx, edx
cmp ecx, dword [esp + 0x50]
jbe 0x47e31c
xor edx, edx
mov ax, word [esi + ebp + 4]
xor ecx, ecx
rol ax, 8
add ebp, 6
movzx eax, ax
add ebp, esi
test al, al
jns 0x47e340
and eax, 0x20
or eax, 0x18
shr eax, 2
add ebp, eax
jmp 0x47e364
mov ecx, eax
test al, 0x10
je 0x47e358
or word [edi + 0x22], 1
and ecx, 0x20
or ecx, 0x1c
shr edx, 1
shr ecx, 2
jmp 0x47e35e
shr ecx, 2
and ecx, 8
test al, 0x20
je 0x47e364
shr edx, 1
mov eax, dword [esp + 0x50]
sub eax, esi
mov dword [edi], edx
sub eax, 6
push eax
push ebp
mov ebp, dword [esp + 0x1c]
push ecx
push edi
mov ecx, ebp
call fcn.00471100
mov eax, dword [esp + 0x30]
inc ebx
add edi, 0x40
cmp ebx, dword [ebp + 0xe924]
jb 0x47e2b0
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x34]
cmp ebx, 0xf0
jbe 0x47e3ab
mov ebx, 0xf0
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x40]
test edx, edx
je 0x47e790
lea eax, [ebx*4]
mov ecx, edi
sub ecx, eax
cmp edx, ecx
ja 0x47e790
add edx, dword [esp + 0x4c]
xor eax, eax
cmp byte [esp + 0x13], 0x33
mov dword [esp + 0x1c], edx
setne al
dec eax
and eax, 0xffffffe8
add eax, 0x30
add dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x38], eax
test ebx, ebx
je 0x47e752
lea esi, [ebp + 0xcac0]
lea ecx, [ebp + 0xce80]
mov dword [esp + 0x18], esi
mov dword [esp + 0x30], ecx
lea esp, [esp]
mov ecx, dword [edx + eax*4]
mov ebx, ecx
mov eax, ecx
and ebx, 0xff0000
shr eax, 0x10
or ebx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr ebx, 8
shl eax, 8
or ebx, eax
je 0x47e72d
cmp ebx, edi
jae 0x47e72d
lea eax, [edi - 8]
cmp ebx, eax
jae 0x47e72d
cmp byte [esp + 0x13], 0x30
jne 0x47e553
mov ecx, dword [esp + 0x4c]
movzx eax, byte [ebx + ecx + 1]
movzx ebp, byte [ebx + ecx]
inc eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
test ebp, ebp
jne 0x47e47b
mov ebp, dword [ecx + 0xe910]
push dword [ecx + 0xe910]
push eax
call fcn.00470370
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x47e729
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x4c]
add edi, 2
mov word [eax], dx
add edi, ebx
mov esi, dword [esi]
mov eax, ebp
imul eax, edx
lea ecx, [ebx + eax*2]
add ecx, eax
mov eax, dword [esp + 0x50]
add eax, 0xfffffffe
cmp ecx, eax
ja 0x47e74e
test edx, edx
je 0x47e725
jmp 0x47e4d0
xor ebx, ebx
test ebp, ebp
je 0x47e547
mov eax, dword [esp + 0x14]
lea ebx, [ebx]
cmp ebx, dword [eax + 0xe910]
jae 0x47e53b
mov al, byte [edi]
mov cl, byte [edi + 1]
mov dl, al
and dl, 0x3f
shr cl, 4
test al, al
jns 0x47e4fc
or cl, 0x10
test al, 0x40
je 0x47e503
or cl, 0x20
test dl, dl
je 0x47e514
cmp dl, 0x84
ja 0x47e514
mov al, byte [esp + 0x24]
add al, dl
mov byte [esi], al
push dword [esp + 0x28]
mov byte [esi + 1], cl
movzx eax, byte [edi + 1]
and al, 0xf
mov byte [esi + 3], al
movzx eax, byte [edi + 2]
push esi
mov byte [esi + 5], al
call fcn.0047d570
mov eax, dword [esp + 0x1c]
add esp, 8
add esi, 6
inc ebx
add edi, 3
cmp ebx, ebp
jb 0x47e4e0
mov edx, dword [esp + 0x2c]
dec edx
mov dword [esp + 0x2c], edx
jne 0x47e4d0
jmp 0x47e725
mov eax, dword [esp + 0x4c]
xor ebp, ebp
movzx edi, byte [ebx + eax + 3]
movzx esi, byte [ebx + eax + 1]
inc edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], esi
test esi, esi
jne 0x47e57e
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xe910]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
push dword [eax + 0xe910]
push edi
call fcn.00470370
mov esi, dword [esp + 0x20]
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x47e725
mov eax, dword [esp + 0x30]
mov word [eax], di
mov edi, dword [esp + 0x4c]
push dword [ebx + edi + 4]
call fcn.0047e7e0
add esp, 4
test eax, eax
je 0x47e65e
mov ecx, dword [esp + 0x50]
add ecx, 0xffffffdc
cmp eax, ecx
jae 0x47e65e
add edi, eax
mov eax, dword [edi + 4]
test eax, eax
je 0x47e619
cmp dword [edi + 8], ebp
je 0x47e619
push eax
call fcn.0047e7e0
mov esi, eax
add esp, 4
cmp esi, dword [esp + 0x50]
jae 0x47e615
push dword [edi + 8]
call fcn.0047e7e0
mov ecx, dword [esp + 0x54]
add esp, 4
add ecx, esi
cmp eax, ecx
jae 0x47e615
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
add eax, esi
push eax
push dword [esp + 0x3c]
call fcn.00471de0
mov esi, dword [esp + 0x18]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x47e65e
push eax
call fcn.0047e7e0
mov edi, dword [esp + 0x54]
add esp, 4
lea ecx, [edi - 4]
cmp eax, ecx
jae 0x47e65e
mov ecx, dword [esp + 0x4c]
push dword [eax + ecx]
call fcn.0047e7e0
add esp, 4
test eax, eax
je 0x47e65e
mov edx, dword [esp + 0x2c]
mov ecx, edi
imul edx, dword [esp + 0x20]
sub ecx, edx
cmp eax, ecx
ja 0x47e65e
mov ebp, dword [esp + 0x4c]
add ebp, eax
mov edx, dword [esp + 0x2c]
mov eax, edx
imul eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x44]
add ecx, 0xfffffff8
mov esi, dword [esi]
add edi, ebx
lea eax, [ebx + eax*4]
cmp eax, ecx
ja 0x47e74e
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47e725
nop
xor ebx, ebx
test edx, edx
je 0x47e714
mov eax, dword [esp + 0x14]
lea ebx, [ebx]
cmp ebx, dword [eax + 0xe910]
jae 0x47e708
mov al, byte [edi]
test al, al
je 0x47e6d1
cmp al, 0x84
ja 0x47e6d1
movzx eax, al
add eax, dword [esp + 0x24]
cmp eax, 1
jge 0x47e6c5
mov eax, 1
jmp 0x47e6cf
cmp eax, 0x78
jle 0x47e6cf
mov eax, 0x78
mov byte [esi], al
movzx eax, byte [edi + 1]
mov byte [esi + 1], al
movzx eax, byte [edi + 2]
mov byte [esi + 3], al
movzx eax, byte [edi + 3]
mov byte [esi + 5], al
test ebp, ebp
je 0x47e6f0
mov al, byte [ebx + ebp]
mov byte [esi + 4], al
push dword [esp + 0x28]
push esi
call fcn.0047d570
mov edx, dword [esp + 0x34]
add esp, 8
mov eax, dword [esp + 0x14]
add esi, 6
inc ebx
add edi, 4
cmp ebx, edx
jb 0x47e6a0
mov eax, dword [esp + 0x20]
test ebp, ebp
je 0x47e71a
add ebp, edx
dec eax
mov dword [esp + 0x20], eax
jne 0x47e690
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
add dword [esp + 0x18], 4
inc eax
add dword [esp + 0x30], 2
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x34]
jb 0x47e410
mov ebp, dword [esp + 0x14]
xor ecx, ecx
cmp dword [ebp + 0xe910], ecx
jbe 0x47e790
lea edx, [ebp + 0xc1c4]
mov eax, ecx
and eax, 3
cmp eax, 1
je 0x47e776
cmp eax, 2
mov eax, 0x40
jne 0x47e77b
mov eax, 0xc0
mov dword [edx - 4], eax
inc ecx
mov dword [edx], 0x40
add edx, 0x24
cmp ecx, dword [ebp + 0xe910]
jb 0x47e762
pop esi
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0x38
ret 8
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret 8
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret 8