Function at 0x47d8a0
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 0x47e5db
mov ebx, dword [esp + 0x4c]
cmp ebx, 0x200
jb 0x47e5db
mov eax, dword [edi]
and eax, 0xffffff
cmp eax, 0x444d4d
jne 0x47e5db
mov ecx, dword [edi + 8]
lea eax, [edi + 8]
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x47e5db
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 0x47e5cf
lea eax, [esi + 0x314]
cmp eax, ebx
jae 0x47e5cf
mov al, byte [edi + 3]
mov byte [esp + 0x13], al
sub al, 0x30
cmp al, 3
ja 0x47e5cf
mov dword [ebp + 0xe920], 8
mov dword [ebp + 0xe964], 0x20
push dword [edi + 0x10]
call fcn.0047e610
push dword [edi + 0x18]
mov dword [esp + 0x48], eax
call fcn.0047e610
push dword [edi + 0x20]
mov dword [esp + 0x48], eax
call fcn.0047e610
add esp, 0xc
test eax, eax
je 0x47d97e
lea ecx, [ebx - 0x50]
cmp eax, ecx
jae 0x47d97e
add eax, edi
jmp 0x47d980
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 0x47d9c2
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 0x47d9e3
mov ecx, 0x7d
mov al, byte [esi + 0x300]
test al, 0x20
je 0x47da03
movzx edx, al
and edx, 0x1f
inc edx
jne 0x47d9fb
mov edx, 4
imul edx, ecx
shr edx, 2
jmp 0x47da32
test byte [esi + 0x2ff], 0x40
je 0x47da1d
lea eax, [ecx - 1]
cmp eax, 9
ja 0x47da1d
movzx edx, byte [ecx + 0x52289f]
jmp 0x47da32
push 0xe79ac
push 0x369e99
push ecx
call fcn.00478530
add esp, 0xc
mov edx, eax
movzx ecx, byte [esi + 0x301]
mov dword [ebp + 0xe900], ecx
test ecx, ecx
jne 0x47da4d
mov dword [ebp + 0xe900], 6
cmp edx, 0x21
jae 0x47da59
mov edx, 0x21
jmp 0x47daa8
cmp edx, 0xff
jbe 0x47daa8
cmp dword [ebp + 0xe900], 3
jbe 0x47da9b
lea ebx, [ebx]
cmp edx, 0x104
jbe 0x47da97
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 0x47da70
mov esi, dword [esp + 0x28]
cmp edx, 0xff
jbe 0x47daa8
mov edx, 0xff
xor edi, edi
mov dword [ebp + 0xe904], edx
mov ebx, 0x100
cmp dword [ebp + 0xe924], edi
jbe 0x47db41
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 0x47db0d
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 0x47db32
or word [edx + 4], 2
inc edi
add edx, 0x40
add esi, 8
cmp edi, dword [ebp + 0xe924]
jb 0x47dad0
mov esi, dword [esp + 0x28]
test byte [esi + 0x2ff], 0x20
jne 0x47db55
or dword [ebp + 0xe90c], 2
cmp byte [esp + 0x13], 0x32
jge 0x47dba1
movzx eax, byte [esi + 0x1fb]
cmp eax, 0x100
jb 0x47db71
mov eax, 0xff
jmp 0x47db7a
test eax, eax
jne 0x47db7a
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 0x47dd5e
mov ax, word [esi + 0x208]
rol ax, 8
movzx ecx, ax
lea eax, [ecx - 4]
cmp eax, 0x1c
ja 0x47dbbd
mov dword [ebp + 0xe910], ecx
push dword [esi + 0x1fc]
call fcn.0047e610
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.0047e610
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x50]
mov dword [esp + 0x18], edx
test edi, edi
je 0x47dc07
test edx, edx
je 0x47dc07
lea ecx, [eax - 2]
cmp edx, ecx
jb 0x47dc10
mov edi, 1
mov dword [esp + 0x20], edi
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x38], esi
test edi, edi
je 0x47dd23
xor ecx, ecx
test edx, edx
je 0x47dc3f
add eax, 0xfffffffe
cmp edx, eax
jae 0x47dc3f
mov eax, dword [esp + 0x4c]
movzx ecx, byte [edx + eax + 1]
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x47dc45
xor edi, edi
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x50]
test ebp, ebp
je 0x47dd16
cmp ebp, eax
jae 0x47dd16
shl ecx, 2
sub eax, ebp
cmp ecx, eax
jae 0x47dd12
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0x4c]
push dword [eax + ecx]
call fcn.0047e610
mov ebp, eax
add esp, 4
mov eax, dword [esp + 0x50]
test ebp, ebp
je 0x47e016
lea ecx, [eax - 0x42a]
cmp ebp, ecx
jae 0x47e016
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
add edi, 0xe99c
add eax, ebp
cmp byte [edi], 0
jne 0x47dcb9
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 0x47dd06
test edx, edx
je 0x47dd06
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 0x47dd00
cmp ebx, 0xff
jae 0x47dd00
mov byte [ebx + edi + 0xd060], cl
inc ebx
add eax, 2
dec edx
jne 0x47dce8
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 0x47dc20
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
movsx eax, byte [esi + 0x2fe]
mov dword [esp + 0x24], eax
cmp ebx, 0x100
jae 0x47dd5e
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 0x47e0a2
cmp dword [ebp + 0xe910], 4
jne 0x47ddb0
test byte [esi + 0x2ff], 0x40
je 0x47ddb0
cmp byte [ebx + 0x24], 0
je 0x47dd8c
mov dword [ebp + 0xe910], 3
cmp byte [ebx + 0x25], 0
je 0x47dd98
dec dword [ebp + 0xe910]
cmp byte [ebx + 0x26], 0
je 0x47dda4
dec dword [ebp + 0xe910]
cmp byte [ebx + 0x27], 0
je 0x47ddb0
dec dword [ebp + 0xe910]
push dword [ebx + 0xc]
call fcn.0047e610
push dword [ebx + 0x10]
mov edi, eax
call fcn.0047e610
add esp, 8
mov esi, eax
test edi, edi
je 0x47de06
test esi, esi
je 0x47de06
lea eax, [esi + edi]
cmp eax, edi
jbe 0x47de06
cmp eax, dword [esp + 0x50]
ja 0x47de06
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.0047e610
push dword [ebx + 0x30]
mov esi, eax
call fcn.0047e610
mov edi, dword [esp + 0x58]
add esp, 8
test esi, esi
je 0x47de5a
test eax, eax
je 0x47de5a
lea ecx, [eax + esi]
cmp ecx, esi
jbe 0x47de5a
cmp ecx, edi
ja 0x47de5a
cmp eax, 0x1f
jbe 0x47de3c
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.0047e610
mov esi, eax
add esp, 4
test esi, esi
je 0x47df05
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 0x47df01
mov ecx, ebp
imul ecx, edx
cmp ecx, edi
jae 0x47df01
mov eax, edi
sub eax, ecx
cmp esi, eax
jae 0x47df01
mov ebx, dword [esp + 0x4c]
mov eax, ebp
add ebx, esi
mov dword [esp + 0x38], ebp
cmp ebp, 0x20
jbe 0x47debc
mov eax, 0x20
mov dword [esp + 0x38], eax
xor esi, esi
test edx, edx
je 0x47defd
mov ecx, dword [esp + 0x14]
lea edi, [ecx + 0xe9db]
lea esp, [esp]
cmp esi, dword [ecx + 0xe924]
jae 0x47deef
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 0x47ded0
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 0x47e0aa
cmp edx, edi
jae 0x47e0aa
mov esi, dword [ebp + 0xe910]
mov ecx, edi
sub ecx, edx
lea eax, [esi*4]
cmp eax, ecx
jae 0x47e0aa
xor eax, eax
lea ecx, [edx + ebx]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
test esi, esi
je 0x47e0aa
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.0047e610
mov edi, eax
add esp, 4
test edi, edi
je 0x47e078
mov eax, dword [esp + 0x50]
add eax, 0xfffffff8
cmp edi, eax
jae 0x47e078
jmp 0x47dfb0
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 0x47e03b
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 0x47e023
cmp edx, 0x80000001
jne 0x47e025
mov ebp, esi
jmp 0x47e025
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x47dd16
mov ebx, esi
mov eax, dword [esp + 0x50]
add edi, 8
add eax, 0xfffffff8
cmp edi, eax
jb 0x47dfb0
mov esi, dword [esp + 0x4c]
cmp ebx, 0x14
jbe 0x47e045
mov ebx, 0x14
mov edi, dword [esp + 0x50]
test ebp, ebp
je 0x47e072
cmp ebx, edi
jae 0x47e072
mov eax, edi
sub eax, ebx
cmp ebp, eax
jae 0x47e072
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 0x47e07c
mov esi, dword [esp + 0x20]
jmp 0x47e07c
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 0x47df80
jmp 0x47e0a6
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 0x47e5c0
add eax, ebx
xor ebx, ebx
mov dword [esp + 0x30], eax
test edx, edx
je 0x47e1c6
lea edi, [ebp + 0x8240]
lea ecx, [ecx]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
je 0x47e1b2
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 0x47e1ae
lea eax, [esi + 0x15]
cmp eax, ecx
jae 0x47e1ae
mov ebp, dword [esp + 0x4c]
push dword [esi + ebp]
call fcn.0047e610
mov edx, eax
add esp, 4
cmp edx, 0xf42400
ja 0x47e14a
lea ecx, [esi + 6]
add ecx, edx
cmp ecx, dword [esp + 0x50]
jbe 0x47e14c
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 0x47e170
and eax, 0x20
or eax, 0x18
shr eax, 2
add ebp, eax
jmp 0x47e194
mov ecx, eax
test al, 0x10
je 0x47e188
or word [edi + 0x22], 1
and ecx, 0x20
or ecx, 0x1c
shr edx, 1
shr ecx, 2
jmp 0x47e18e
shr ecx, 2
and ecx, 8
test al, 0x20
je 0x47e194
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.00470f30
mov eax, dword [esp + 0x30]
inc ebx
add edi, 0x40
cmp ebx, dword [ebp + 0xe924]
jb 0x47e0e0
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x34]
cmp ebx, 0xf0
jbe 0x47e1db
mov ebx, 0xf0
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x40]
test edx, edx
je 0x47e5c0
lea eax, [ebx*4]
mov ecx, edi
sub ecx, eax
cmp edx, ecx
ja 0x47e5c0
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 0x47e582
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 0x47e55d
cmp ebx, edi
jae 0x47e55d
lea eax, [edi - 8]
cmp ebx, eax
jae 0x47e55d
cmp byte [esp + 0x13], 0x30
jne 0x47e383
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 0x47e2ab
mov ebp, dword [ecx + 0xe910]
push dword [ecx + 0xe910]
push eax
call fcn.004701a0
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x47e559
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 0x47e57e
test edx, edx
je 0x47e555
jmp 0x47e300
xor ebx, ebx
test ebp, ebp
je 0x47e377
mov eax, dword [esp + 0x14]
lea ebx, [ebx]
cmp ebx, dword [eax + 0xe910]
jae 0x47e36b
mov al, byte [edi]
mov cl, byte [edi + 1]
mov dl, al
and dl, 0x3f
shr cl, 4
test al, al
jns 0x47e32c
or cl, 0x10
test al, 0x40
je 0x47e333
or cl, 0x20
test dl, dl
je 0x47e344
cmp dl, 0x84
ja 0x47e344
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.0047d3a0
mov eax, dword [esp + 0x1c]
add esp, 8
add esi, 6
inc ebx
add edi, 3
cmp ebx, ebp
jb 0x47e310
mov edx, dword [esp + 0x2c]
dec edx
mov dword [esp + 0x2c], edx
jne 0x47e300
jmp 0x47e555
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 0x47e3ae
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.004701a0
mov esi, dword [esp + 0x20]
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x47e555
mov eax, dword [esp + 0x30]
mov word [eax], di
mov edi, dword [esp + 0x4c]
push dword [ebx + edi + 4]
call fcn.0047e610
add esp, 4
test eax, eax
je 0x47e48e
mov ecx, dword [esp + 0x50]
add ecx, 0xffffffdc
cmp eax, ecx
jae 0x47e48e
add edi, eax
mov eax, dword [edi + 4]
test eax, eax
je 0x47e449
cmp dword [edi + 8], ebp
je 0x47e449
push eax
call fcn.0047e610
mov esi, eax
add esp, 4
cmp esi, dword [esp + 0x50]
jae 0x47e445
push dword [edi + 8]
call fcn.0047e610
mov ecx, dword [esp + 0x54]
add esp, 4
add ecx, esi
cmp eax, ecx
jae 0x47e445
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
add eax, esi
push eax
push dword [esp + 0x3c]
call fcn.00471c10
mov esi, dword [esp + 0x18]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x47e48e
push eax
call fcn.0047e610
mov edi, dword [esp + 0x54]
add esp, 4
lea ecx, [edi - 4]
cmp eax, ecx
jae 0x47e48e
mov ecx, dword [esp + 0x4c]
push dword [eax + ecx]
call fcn.0047e610
add esp, 4
test eax, eax
je 0x47e48e
mov edx, dword [esp + 0x2c]
mov ecx, edi
imul edx, dword [esp + 0x20]
sub ecx, edx
cmp eax, ecx
ja 0x47e48e
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 0x47e57e
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47e555
nop
xor ebx, ebx
test edx, edx
je 0x47e544
mov eax, dword [esp + 0x14]
lea ebx, [ebx]
cmp ebx, dword [eax + 0xe910]
jae 0x47e538
mov al, byte [edi]
test al, al
je 0x47e501
cmp al, 0x84
ja 0x47e501
movzx eax, al
add eax, dword [esp + 0x24]
cmp eax, 1
jge 0x47e4f5
mov eax, 1
jmp 0x47e4ff
cmp eax, 0x78
jle 0x47e4ff
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 0x47e520
mov al, byte [ebx + ebp]
mov byte [esi + 4], al
push dword [esp + 0x28]
push esi
call fcn.0047d3a0
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 0x47e4d0
mov eax, dword [esp + 0x20]
test ebp, ebp
je 0x47e54a
add ebp, edx
dec eax
mov dword [esp + 0x20], eax
jne 0x47e4c0
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 0x47e240
mov ebp, dword [esp + 0x14]
xor ecx, ecx
cmp dword [ebp + 0xe910], ecx
jbe 0x47e5c0
lea edx, [ebp + 0xc1c4]
mov eax, ecx
and eax, 3
cmp eax, 1
je 0x47e5a6
cmp eax, 2
mov eax, 0x40
jne 0x47e5ab
mov eax, 0xc0
mov dword [edx - 4], eax
inc ecx
mov dword [edx], 0x40
add edx, 0x24
cmp ecx, dword [ebp + 0xe910]
jb 0x47e592
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