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

Disassembly:
push 0xffffffffffffffff
push 0x64f122
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
push ebp
push esi
push edi
mov ebp, ecx
push 1
call fcn.00643d20
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x8d]
mov byte [esp + 0x8c], 0
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [ebp + 0x154]
push 8
push eax
lea eax, [esp + 0x94]
push eax
xor esi, esi
call dword [fcn.0065f1c4]
lea ecx, [esp + 0x98]
push ecx
call fcn.00471da0
mov eax, dword [ebp + 0x15c]
add esp, 0x10
cmp eax, esi
jne 0x4d36f0
lea edi, [esp + 0x8c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jae 0x4d36f0
mov edx, dword [ebp + 0x20]
push esi
push 0x1b
push 0x100
push edx
call dword [fcn.0065f4a0]
jmp 0x4d44f0
mov ecx, 0x86c4
xor eax, eax
mov edi, 0x86fc30
mov dword [0x897500], esi
rep stosd dword es:[edi], eax
mov eax, 0x86fc30
mov dword [eax], 0xffffffff
add eax, 0x17
cmp eax, 0x891740
jl 0x4d3709
mov eax, dword [ebp + 0x158]
push 0x891740
push 0x1770
lea ecx, [esp + 0x94]
push eax
push ecx
call fcn.00474da0
mov dword [0x897500], eax
mov al, byte [esp + 0x9c]
add esp, 0x10
cmp al, 0x41
jl 0x4d3756
cmp al, 0x5a
mov dword [esp + 0x24], 1
jle 0x4d375a
mov dword [esp + 0x24], esi
mov edx, dword [ebp + 0xd8]
push ebx
mov ebx, dword [fcn.0065f498]
push esi
push esi
push 0xb
push edx
call ebx
mov eax, dword [ebp + 0xd8]
push esi
push esi
push 0x184
push eax
call ebx
cmp dword [0x897500], esi
jle 0x4d44e1
lea ecx, [esp + 0x18]
call fcn.00643d62
mov eax, dword [0x897500]
mov dword [esp + 0x100], esi
cmp eax, esi
mov dword [esp + 0x1c], esi
jle 0x4d44bb
mov dword [esp + 0x10], 0x86fc34
mov dword [esp + 0x30], 0x891740
mov ecx, dword [esp + 0x30]
mov esi, dword [ecx]
cmp esi, 0xc350
jl 0x4d388d
mov ecx, dword [0x828ad0]
sub esi, 0xc350
test ecx, ecx
je 0x4d448e
cmp esi, dword [0x828ad4]
jge 0x4d448e
mov eax, dword [esp + 0x28]
test eax, eax
lea eax, [esi + esi*2]
je 0x4d381b
shl eax, 3
sub eax, esi
lea esi, [eax + eax*2]
shl esi, 1
lea eax, [esi + ecx + 7]
push eax
push 9
push eax
call dword [sym.imp.TGear.dll_GetPYStr]
add esp, 8
push eax
push 0x6b717c
jmp 0x4d3832
shl eax, 3
sub eax, esi
lea esi, [eax + eax*2]
shl esi, 1
lea eax, [esi + ecx]
lea ecx, [eax + 7]
push ecx
push eax
push 0x6b7174
lea edx, [esp + 0x24]
push edx
call fcn.00643d50
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0xd8]
add esp, 0x10
push eax
push 0
push 0x180
push ecx
call ebx
mov eax, dword [0x828ad0]
mov edx, dword [esp + 0x10]
or ecx, 0xffffffff
push 7
lea edi, [esi + eax]
xor eax, eax
mov dword [edx - 4], 7
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4d447b
cmp esi, 0x88b8
jl 0x4d394b
mov ecx, dword [0x826818]
sub esi, 0x61a8
push esi
call fcn.004466b0
mov edi, eax
test edi, edi
je 0x4d448e
lea edx, [edi + 0x18]
lea eax, [esp + 0x18]
push edx
push edi
push 0x6b7174
push eax
call fcn.00643d50
mov ecx, dword [esp + 0x28]
mov edx, dword [ebp + 0xd8]
add esp, 0x10
push ecx
push 0
push 0x180
push edx
call ebx
movsx eax, byte [edi + 0xec]
mov esi, dword [esp + 0x10]
add eax, 0x14
push 2
lea edx, [esp + 0x90]
mov dword [esi - 4], eax
movsx ecx, byte [edi + 0xec]
push ecx
push edx
call fcn.00471ed0
mov eax, dword [eax]
push 2
push eax
push esi
call dword [fcn.0065f1c4]
add esp, 0x18
lea ecx, [esp + 0x8c]
call fcn.00643d26
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + 2]
mov eax, ecx
mov esi, edi
mov edi, edx
push 5
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4d42ce
cmp esi, 0x7d00
jl 0x4d39df
sub esi, 0x7d00
lea eax, [esi + esi*8]
shl eax, 3
sub eax, esi
lea eax, [eax + eax*4]
mov cl, byte [eax*8 + 0x6a8ed4]
lea eax, [eax*8 + 0x6a83c0]
test cl, 0x80
jne 0x4d448e
lea edi, [eax + 3]
add eax, 0x11
push eax
push edi
lea ecx, [esp + 0x20]
push 0x6b716c
push ecx
call fcn.00643d50
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0xd8]
add esp, 0x10
push edx
push 0
push 0x180
push eax
call ebx
mov ecx, dword [esp + 0x10]
xor eax, eax
push 4
mov dword [ecx - 4], 4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4d447b
cmp esi, 0x7530
jl 0x4d3d0d
sub esi, 0x7530
jne 0x4d3a0d
mov edx, dword [ebp + 0xd8]
push 0x69acb8
push 0
push 0x180
push edx
call ebx
jmp 0x4d3cad
cmp esi, 1
jne 0x4d3a2c
mov eax, dword [ebp + 0xd8]
push 0x69acb0
push 0
push 0x180
push eax
call ebx
jmp 0x4d3cad
cmp esi, 0x192
jge 0x4d3a8e
push 0x6b7164
lea ecx, [esp + 0x44]
call fcn.00643d2c
lea ecx, [esi + esi*8 - 0x12]
push eax
lea eax, [esp + 0x6c]
mov byte [esp + 0x104], 1
lea edx, [esi + ecx*2 + 0x80a3aa]
push edx
push eax
call fcn.0064409e
mov eax, dword [eax]
mov ecx, dword [ebp + 0xd8]
push eax
push 0
push 0x180
push ecx
call ebx
lea ecx, [esp + 0x68]
call fcn.00643d26
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x40]
jmp 0x4d3ca8
cmp esi, 0x1f6
jge 0x4d3af9
push 0x6b7164
lea ecx, [esp + 0x4c]
call fcn.00643d2c
lea edx, [esi + esi*4 - 0x7da]
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x104], 2
lea eax, [edx*2 + 0x6a7288]
push eax
push ecx
call fcn.0064409e
mov eax, dword [eax]
mov edx, dword [ebp + 0xd8]
push eax
push 0
push 0x180
push edx
call ebx
lea ecx, [esp + 0x80]
call fcn.00643d26
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x48]
jmp 0x4d3ca8
cmp esi, 0x25a
jge 0x4d3b57
push 0x6b7164
lea ecx, [esp + 0x54]
call fcn.00643d2c
push eax
lea eax, [esi + esi*8 + 0x6a62c2]
lea ecx, [esp + 0x74]
push eax
push ecx
mov byte [esp + 0x10c], 3
call fcn.0064409e
mov eax, dword [eax]
mov edx, dword [ebp + 0xd8]
push eax
push 0
push 0x180
push edx
call ebx
lea ecx, [esp + 0x70]
call fcn.00643d26
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x50]
jmp 0x4d3ca8
cmp esi, 0x2be
jge 0x4d3bc2
push 0x6b7164
lea ecx, [esp + 0x5c]
call fcn.00643d2c
push eax
lea eax, [esi + esi*4 - 0xbc2]
lea edx, [esp + 0x38]
mov byte [esp + 0x104], 4
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
lea ecx, [esi + eax*2 + 0x7f647e]
push ecx
push edx
call fcn.0064409e
mov eax, dword [eax]
push eax
mov eax, dword [ebp + 0xd8]
push 0
push 0x180
push eax
call ebx
lea ecx, [esp + 0x34]
call fcn.00643d26
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x58]
jmp 0x4d3ca8
cmp esi, 0x322
jge 0x4d3c3c
push 0x6b7164
lea ecx, [esp + 0x64]
call fcn.00643d2c
push eax
lea eax, [esi + esi*4 - 0xdb6]
mov byte [esp + 0x104], 5
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
lea eax, [esi + ecx*8 - 0x2be]
lea edx, [eax + eax*2]
mov eax, dword [0x82680c]
lea ecx, [eax + esi - 0x2be]
lea eax, [esp + 0x7c]
lea edx, [ecx + edx*4]
push edx
push eax
call fcn.0064409e
mov eax, dword [eax]
mov ecx, dword [ebp + 0xd8]
push eax
push 0
push 0x180
push ecx
call ebx
lea ecx, [esp + 0x78]
call fcn.00643d26
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x60]
jmp 0x4d3ca8
cmp esi, 0x3ea
jge 0x4d3cad
mov ecx, dword [0x826824]
lea edx, [esi - 0x322]
push edx
call fcn.0043e4b0
push 0x6b7164
lea ecx, [esp + 0x3c]
mov edi, eax
call fcn.00643d2c
push eax
lea eax, [esp + 0x8c]
push edi
push eax
mov byte [esp + 0x10c], 6
call fcn.0064409e
mov eax, dword [eax]
mov ecx, dword [ebp + 0xd8]
push eax
push 0
push 0x180
push ecx
call ebx
lea ecx, [esp + 0x88]
call fcn.00643d26
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x38]
call fcn.00643d26
add esi, 0xfffffffe
push 0
lea edx, [esp + 0x40]
push esi
push edx
call fcn.00471ed0
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3c]
call fcn.00643d26
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
push 0
push edx
mov dword [ecx - 4], 3
mov eax, dword [ebp + 0xd8]
push 0x19a
push eax
jmp 0x4d448c
cmp esi, 0x7468
jl 0x4d3d82
sub esi, 0x7468
lea edx, [esp + 0x18]
imul esi, esi, 0x1e
lea ecx, [esi + 0x66852a]
lea edi, [esi + 0x668520]
push ecx
push edi
push 0x6b716c
push edx
call fcn.00643d50
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0xd8]
add esp, 0x10
push eax
push 0
push 0x180
push ecx
call ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x10]
push 5
not ecx
sub edi, ecx
mov dword [edx - 4], 5
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4d42ce
cmp esi, 0x7148
jl 0x4d3e18
sub esi, 0x7148
push esi
call fcn.0048a620
add esp, 4
lea ecx, [esp + 0x18]
push eax
lea eax, [esi + 0x258]
push eax
push 0x6b7158
push ecx
call fcn.00643d50
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0xd8]
add esp, 0x10
push edx
push 0
push 0x180
push eax
call ebx
mov ecx, dword [esp + 0x10]
push 0
lea edx, [esp + 0x48]
push esi
push edx
mov dword [ecx - 4], 6
call fcn.00471ed0
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
call fcn.00643d26
push 6
jmp 0x4d42ce
cmp esi, 0x7080
jl 0x4d3eae
sub esi, 0x7080
push esi
call fcn.0048a620
add esp, 4
lea ecx, [esp + 0x18]
push eax
lea eax, [esi + 0x320]
push eax
push 0x6b7148
push ecx
call fcn.00643d50
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0xd8]
add esp, 0x10
push edx
push 0
push 0x180
push eax
call ebx
mov ecx, dword [esp + 0x10]
push 0
lea edx, [esp + 0x50]
push esi
push edx
mov dword [ecx - 4], 8
call fcn.00471ed0
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x4c]
call fcn.00643d26
push 8
jmp 0x4d42ce
cmp esi, 0x4e20
jl 0x4d3f6a
mov ecx, dword [0x8267e8]
sub esi, 0x4e20
push esi
push 0
call dword [sym.imp.TCalc.dll_public:_struct_tag_INDEXINFO____thiscall_CalcInterface::GetIndexInfo_unsigned_char__long_int_const]
test eax, eax
je 0x4d3f3c
test byte [eax + 0xb14], 0x80
jne 0x4d3f3c
lea edi, [eax + 3]
add eax, 0x11
push eax
push edi
lea eax, [esp + 0x20]
push 0x6b716c
push eax
call fcn.00643d50
mov ecx, dword [esp + 0x28]
mov edx, dword [ebp + 0xd8]
add esp, 0x10
push ecx
push 0
push 0x180
push edx
call ebx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
push 1
mov dword [eax - 4], 1
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4d447b
mov edx, dword [esp + 0x10]
or ecx, 0xffffffff
mov edi, 0x6c7010
xor eax, eax
mov dword [edx - 4], ecx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4d448e
cmp esi, 0x3a98
jl 0x4d42e4
mov edx, dword [0x6a6c04]
sub esi, 0x3a98
cmp esi, edx
jl 0x4d412b
mov ecx, dword [0x73aa64]
mov eax, esi
sub eax, edx
lea eax, [eax + eax*4]
lea edx, [eax + eax*8]
lea eax, [ecx + edx*4 + 0x9c]
lea ecx, [esp + 0x54]
push eax
call fcn.00643d2c
push 0x6a05a0
lea ecx, [esp + 0x30]
push eax
push ecx
mov byte [esp + 0x10c], 7
call fcn.00643ea6
lea ecx, [esp + 0x54]
mov byte [esp + 0x100], 9
call fcn.00643d26
mov ecx, dword [0x6a6c04]
mov eax, esi
sub eax, ecx
mov edx, dword [0x73aa64]
lea eax, [eax + eax*4]
lea edi, [eax + eax*8]
shl edi, 2
lea eax, [edx + edi + 0x32]
mov dword [esp + 0x20], eax
mov eax, 0x73aa70
mov cl, byte [eax]
mov edx, dword [esp + 0x20]
mov byte [esp + 0x17], cl
cmp cl, byte [edx]
jne 0x4d402a
test cl, cl
je 0x4d4026
mov cl, byte [eax + 1]
mov byte [esp + 0x17], cl
cmp cl, byte [edx + 1]
jne 0x4d402a
add eax, 2
add edx, 2
test cl, cl
mov dword [esp + 0x20], edx
jne 0x4d3ffa
xor eax, eax
jmp 0x4d402f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, dword [0x73aa64]
lea ecx, [eax + edi + 0x32]
push ecx
jne 0x4d408f
lea ecx, [esp + 0x68]
call fcn.00643d2c
push 0x6a27c8
lea edx, [esp + 0x60]
push eax
push edx
mov byte [esp + 0x10c], 0xa
call fcn.00643ea6
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x104], 0xb
call fcn.00643d38
lea ecx, [esp + 0x5c]
mov byte [esp + 0x100], 0xa
call fcn.00643d26
mov byte [esp + 0x100], 9
lea ecx, [esp + 0x64]
jmp 0x4d40b6
lea ecx, [esp + 0x70]
call fcn.00643d2c
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x104], 0xc
call fcn.00643d38
mov byte [esp + 0x100], 9
lea ecx, [esp + 0x6c]
call fcn.00643d26
mov edx, dword [esp + 0x2c]
mov eax, dword [ebp + 0xd8]
push edx
push 0
push 0x180
push eax
call ebx
mov edx, dword [0x6a6c04]
mov ecx, dword [esp + 0x10]
sub esi, edx
mov byte [esp + 0x100], 0
mov dword [ecx - 4], 2
mov ecx, dword [0x73aa64]
lea eax, [esi + esi*4]
lea edx, [eax + eax*8]
xor eax, eax
lea edi, [ecx + edx*4 + 0x9c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
call fcn.00643d26
jmp 0x4d42cc
mov edx, esi
or ecx, 0xffffffff
shl edx, 5
add edx, esi
xor eax, eax
shl edx, 1
lea esi, [edx + 0x6a2e12]
mov edi, esi
mov dword [esp + 0x20], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jne 0x4d415e
mov al, byte [esi]
cmp al, 0x37
jne 0x4d415e
cmp byte [edx + 0x6a2e13], 0x30
jne 0x4d41bb
mov al, byte [esi]
cmp al, 0x2e
mov byte [esp + 0x17], al
jne 0x4d428b
cmp byte [edx + 0x6a2e13], 0x37
jne 0x4d428b
mov edi, dword [esp + 0x20]
mov esi, 0x6b7144
mov cl, byte [edi]
mov al, cl
cmp cl, byte [esi]
jne 0x4d41a6
test al, al
je 0x4d41a2
mov cl, byte [edi + 1]
mov al, cl
cmp cl, byte [esi + 1]
jne 0x4d41a6
add edi, 2
add esi, 2
test al, al
jne 0x4d4182
xor eax, eax
jmp 0x4d41ab
sbb eax, eax
sbb eax, 0xffffffff
mov esi, dword [esp + 0x20]
test eax, eax
je 0x4d428b
mov al, byte [esp + 0x17]
cmp al, 0x37
lea eax, [esi + 1]
je 0x4d41c5
lea eax, [esi + 2]
push eax
call dword [fcn.0065f1d8]
mov edi, eax
add esp, 4
test edi, edi
jle 0x4d4276
cmp edi, dword [0x82686c]
jg 0x4d4276
push esi
lea ecx, [esp + 0x88]
call fcn.00643d2c
push 0x6b7140
lea edx, [esp + 0x80]
push eax
push edx
mov byte [esp + 0x10c], 0xd
call fcn.00643ea6
lea ecx, [edi*4 + 0x73a7bc]
lea edx, [esp + 0x74]
push ecx
push eax
push edx
mov byte [esp + 0x10c], 0xe
call fcn.00644050
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x104], 0xf
call fcn.00644098
lea ecx, [esp + 0x74]
mov byte [esp + 0x100], 0xe
call fcn.00643d26
lea ecx, [esp + 0x7c]
mov byte [esp + 0x100], 0xd
call fcn.00643d26
lea ecx, [esp + 0x84]
mov byte [esp + 0x100], 0
call fcn.00643d26
mov eax, dword [esp + 0x18]
jmp 0x4d4291
mov edx, dword [ebp + 0xd8]
push 0x6b7134
push 0
push 0x180
push edx
jmp 0x4d42a0
lea eax, [edx + 0x6a2de0]
mov ecx, dword [ebp + 0xd8]
push eax
push 0
push 0x180
push ecx
call ebx
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [edx - 4], 2
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 2
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 0xd8]
push ecx
push 0x19a
push edx
jmp 0x4d448c
cmp esi, 0x2710
jl 0x4d43a7
mov ecx, dword [0x826818]
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 0
call fcn.004477e0
sub esi, 0x2710
cmp esi, eax
jge 0x4d448e
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4d448e
shl esi, 6
movsx cx, byte [esi + eax]
lea edx, [esi + eax + 1]
push ecx
mov ecx, dword [0x826818]
push edx
call fcn.004467b0
mov edi, eax
test edi, edi
je 0x4d448e
mov eax, dword [esp + 0x28]
test eax, eax
mov eax, dword [esp + 0x24]
je 0x4d4364
lea eax, [esi + eax + 8]
push eax
push 5
push eax
call dword [sym.imp.TGear.dll_GetPYStr]
add esp, 8
jmp 0x4d436d
lea edx, [esi + eax + 8]
lea eax, [esi + eax + 1]
push edx
push eax
lea ecx, [esp + 0xcc]
push 0x6b7124
push ecx
call dword [fcn.0065f1cc]
mov eax, dword [esp + 0x20]
add esp, 0x10
mov dword [eax - 4], 0
mov dl, byte [edi + 0xec]
test dl, dl
setne dl
add edx, 0x30
mov byte [eax], dl
lea edx, [eax + 1]
jmp 0x4d4444
mov eax, dword [esp + 0x28]
mov ecx, dword [0x826818]
test eax, eax
push esi
je 0x4d43e0
call fcn.004466b0
mov ecx, dword [0x826818]
add eax, 0x18
push eax
push esi
call fcn.004466b0
add eax, 0xf1
lea edx, [esp + 0xc8]
push eax
push 0x6b716c
push edx
jmp 0x4d4403
call fcn.004466b0
mov ecx, dword [0x826818]
add eax, 0x18
push eax
push esi
call fcn.004466b0
push eax
lea eax, [esp + 0xcc]
push 0x6b716c
push eax
call dword [fcn.0065f1cc]
mov edi, dword [esp + 0x20]
mov ecx, dword [0x826818]
add esp, 0x10
mov dword [edi - 4], 0
push esi
call fcn.004466b0
mov cl, byte [eax + 0xec]
push esi
test cl, cl
setne cl
add ecx, 0x30
mov byte [edi], cl
mov ecx, dword [0x826818]
call fcn.004466b0
lea edx, [edi + 1]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0xd8]
lea ecx, [esp + 0xc4]
push ecx
push 0
push 0x180
push edx
call ebx
push 3
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0xd8]
push eax
push 0x19a
push ecx
call ebx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
mov ecx, dword [0x897500]
inc eax
add esi, 4
add edx, 0x17
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], edx
jl 0x4d37bb
mov edx, dword [ebp + 0xd8]
xor esi, esi
push esi
push esi
push 0x186
push edx
call ebx
lea ecx, [esp + 0x18]
mov dword [esp + 0x100], 0xffffffff
call fcn.00643d26
mov eax, dword [ebp + 0xd8]
push esi
push 1
push 0xb
push eax
call ebx
pop ebx
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0xf4
ret