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

Disassembly:
push 0xffffffffffffffff
push 0x4f505b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x514
mov eax, dword [esp + 0x530]
push ebx
mov ebx, ecx
push ebp
mov ecx, dword [esp + 0x53c]
push esi
mov dword [esp + 0x44], ecx
push edi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], 0
mov dword [ebx + 0xc], 0
mov dword [esp + 0x44], eax
call fcn.004c86c0
mov byte [0x5132e0], 3
mov al, byte [ebx + 4]
test al, al
mov dword [esp + 0x52c], 1
jne 0x4c36da
mov edi, dword [ebx + 0x14]
mov ecx, 0x19
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [ebx + 0x14]
mov dword [ebx + 0x1c], edx
call fcn.004cd070
test al, al
je 0x4c38df
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4c38df
call fcn.004d1e50
test eax, eax
je 0x4c38df
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.00411e90
mov edi, str.CCommWithEcu::AddressCodeEnter_
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00412290
test al, al
je 0x4c3756
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
mov esi, str.CCommWithEcu::AddressCodeEnter_
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov ecx, dword [esp + 0x538]
lea eax, [esp + 0x70]
push 0xa
and ecx, 0xff
push eax
push ecx
mov byte [esp + 0x538], 2
call fcn.004e0015
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov edi, 0x5135e4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x5135e4
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov eax, dword [esp + 0x53c]
lea edx, [esp + 0x70]
push 0xa
and eax, 0xffff
push edx
push eax
call fcn.004e0015
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov edi, 0x5135e4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x5135e4
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov ecx, dword [esp + 0x544]
mov edx, dword [esp + 0x540]
push ecx
push edx
lea eax, [esp + 0x78]
push str._.2f
push eax
call fcn.004df246
lea edi, [esp + 0x80]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov edi, 0x5135e4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x5135e4
lea ecx, [esp + 0x1c]
call fcn.00411ff0
movsx eax, word [esp + 0x548]
lea edx, [esp + 0x70]
push 0xa
push edx
push eax
call fcn.004e0015
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov edi, 0x51332c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x51332c
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4c38c1
mov eax, 0x4f7480
mov ecx, dword [ebx + 0x10]
push 0
push eax
call fcn.004d2840
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x530], 1
call fcn.00411e90
mov ecx, dword [ebx + 0x1c]
fld qword [esp + 0x540]
fcom qword [0x4f7bd0]
mov byte [ecx], 2
mov edx, dword [ebx + 0x1c]
mov cl, byte [esp + 0x538]
mov byte [edx + 1], 4
mov eax, dword [ebx + 0x1c]
mov byte [eax + 2], cl
xor cl, cl
fnstsw ax
mov byte [esp + 0x13], cl
test ah, 0x41
jne 0x4c392c
fmul qword [0x4f73f8]
fcom qword [0x4f7bd0]
inc cl
fnstsw ax
test ah, 0x41
je 0x4c3913
mov byte [esp + 0x13], cl
fcom qword [0x4f81a0]
fnstsw ax
test ah, 1
je 0x4c3952
fmul qword [0x4f7bd0]
fcom qword [0x4f81a0]
dec cl
fnstsw ax
test ah, 1
jne 0x4c3939
mov byte [esp + 0x13], cl
fmul qword [0x4f73f8]
call fcn.004df2e8
mov esi, dword [ebx + 0x1c]
mov cl, byte [esp + 0x13]
xor edx, edx
inc cl
mov dl, ah
mov byte [esi + 3], dl
mov edx, dword [ebx + 0x1c]
mov byte [edx + 4], al
mov eax, dword [ebx + 0x1c]
mov byte [eax + 5], cl
mov eax, dword [esp + 0x53c]
mov edx, dword [ebx + 0x1c]
xor ecx, ecx
mov cl, ah
and eax, 0xffff
and eax, 0x800000ff
mov byte [edx + 6], cl
jns 0x4c399d
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebx + 0x1c]
movsx ebp, word [esp + 0x548]
mov byte [ecx + 7], al
mov eax, ebp
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebx + 0x1c]
sar eax, 8
mov byte [edx + 8], al
mov eax, ebp
and eax, 0x800000ff
jns 0x4c39cf
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebx + 0x1c]
mov byte [ecx + 9], al
mov al, byte [ebx + 4]
test al, al
je 0x4c3a8e
lea ecx, [esp + 0x70]
call fcn.004c86c0
lea ecx, [esp + 0x70]
mov byte [esp + 0x52c], 3
call fcn.004c8cc0
mov ebp, dword [ebx + 0x1c]
lea ecx, [ebx + 0x20]
add ebp, 0xa
lea edx, [esp + 0x44]
mov dword [ebx + 0x1c], ebp
mov eax, dword [ecx + 8]
push edx
push 1
push eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 2
call fcn.004c7660
mov esi, dword [esp + 0x534]
lea eax, [esp + 0x70]
push eax
mov ecx, esi
call fcn.004c7360
lea ecx, [esp + 0x80]
lea edi, [esi + 0x10]
push ecx
mov ecx, edi
mov byte [esp + 0x530], 4
call fcn.004c5010
mov dl, byte [esp + 0x90]
mov dword [esp + 0x40], 1
mov byte [edi + 0x10], dl
lea ecx, [esp + 0x70]
mov byte [esp + 0x52c], 1
call fcn.004c87c0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x52c], 0
call fcn.004c87c0
mov eax, esi
jmp 0x4c46af
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx]
push 0xa
push eax
call fcn.004d7870
mov edi, dword [ebx + 0x18]
mov ecx, 0x3fff
xor eax, eax
push 0xffff
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, dword [ebx + 0x18]
push ecx
mov ecx, dword [ebx]
call fcn.004d7aa0
test eax, eax
jne 0x4c4203
mov dl, byte [esp + 0x13]
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.00411e90
mov eax, dword [esp + 0x538]
mov byte [esp + 0x52c], 5
and eax, 0xff
push eax
lea eax, [esp + 0x9c]
push str.BYTE_ucAddressCode__0x_02X_
push eax
call fcn.004df246
lea edi, [esp + 0xa4]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov edi, str._n__W_UINT16_ui16Parameter_
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str._n__W_UINT16_ui16Parameter_
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov bl, byte [esp + 0x53c]
xor al, al
test bl, 1
je 0x4c3b6d
mov edi, str.ACE_BPS_AUTO_RECOGNIZE
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.ACE_BPS_AUTO_RECOGNIZE
lea ecx, [esp + 0x1c]
call fcn.00411ff0
mov al, 1
test bl, 2
je 0x4c3c59
test al, al
je 0x4c3be5
mov edi, 0x5133d4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x4f73d0]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [esp + 0x1c]
sub edx, ecx
cmp edx, esi
ja 0x4c3ba0
call fcn.004deb1b
test esi, esi
jbe 0x4c3be5
mov eax, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [eax + esi]
push ebx
call fcn.00412290
test al, al
je 0x4c3be5
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ebx
lea edi, [edx + ecx]
mov ecx, esi
mov eax, ecx
mov esi, 0x5133d4
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 + 0x18]
call fcn.00412270
mov edi, str.ACE_KW2_REVERSE_TO_ECU
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x4f73d0]
sub ecx, edx
cmp ecx, esi
ja 0x4c3c0b
call fcn.004deb1b
test esi, esi
jbe 0x4c3c50
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [edx + esi]
push ebx
call fcn.00412290
test al, al
je 0x4c3c50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push ebx
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, str.ACE_KW2_REVERSE_TO_ECU
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov bl, byte [esp + 0x53c]
mov al, 1
test bl, 4
je 0x4c3d43
test al, al
je 0x4c3cd0
mov edi, 0x5133d4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c3c8b
call fcn.004deb1b
test esi, esi
jbe 0x4c3cd0
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00412290
test al, al
je 0x4c3cd0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x5133d4
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov edi, str.ACE_GET_ADDRESS_REVERSE_FROM_ECU
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c3cf5
call fcn.004deb1b
test esi, esi
jbe 0x4c3d3a
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00412290
test al, al
je 0x4c3d3a
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, str.ACE_GET_ADDRESS_REVERSE_FROM_ECU
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov bl, byte [esp + 0x53c]
mov al, 1
test bl, 8
je 0x4c3e2d
test al, al
je 0x4c3dba
mov edi, 0x5133d4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c3d75
call fcn.004deb1b
test esi, esi
jbe 0x4c3dba
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00412290
test al, al
je 0x4c3dba
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x5133d4
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov edi, str.ACE_RECEIVE_KW5
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c3ddf
call fcn.004deb1b
test esi, esi
jbe 0x4c3e24
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00412290
test al, al
je 0x4c3e24
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, str.ACE_RECEIVE_KW5
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov bl, byte [esp + 0x53c]
mov al, 1
test bl, 0x10
je 0x4c3f17
test al, al
je 0x4c3ea4
mov edi, 0x5133d4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c3e5f
call fcn.004deb1b
test esi, esi
jbe 0x4c3ea4
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00412290
test al, al
je 0x4c3ea4
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x5133d4
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov edi, str.ACE_RECEIVE_ONE_FRAME
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c3ec9
call fcn.004deb1b
test esi, esi
jbe 0x4c3f0e
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00412290
test al, al
je 0x4c3f0e
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, str.ACE_RECEIVE_ONE_FRAME
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov bl, byte [esp + 0x53c]
mov al, 1
test bl, 0x80
je 0x4c3ff8
test al, al
je 0x4c3f8e
mov edi, 0x5133d4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c3f49
call fcn.004deb1b
test esi, esi
jbe 0x4c3f8e
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00412290
test al, al
je 0x4c3f8e
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x5133d4
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov edi, str.ACE_CLOSE_TRIGGER_CHANNEL
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c3fb3
call fcn.004deb1b
test esi, esi
jbe 0x4c3ff8
mov eax, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [eax + esi]
push ebx
call fcn.00412290
test al, al
je 0x4c3ff8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ebx
lea edi, [edx + ecx]
mov ecx, esi
mov eax, ecx
mov esi, str.ACE_CLOSE_TRIGGER_CHANNEL
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 + 0x18]
call fcn.00412270
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push ecx
push edx
lea eax, [esp + 0xa0]
push str.___n__W_FLOAT_fBps____9.1f_bps
push eax
call fcn.004df246
lea edi, [esp + 0xa8]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x1c]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x4f73d0]
sub ecx, edx
cmp ecx, esi
ja 0x4c403f
call fcn.004deb1b
test esi, esi
jbe 0x4c4086
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [edx + esi]
push ebx
call fcn.00412290
test al, al
je 0x4c4086
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push ebx
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x9c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
push ebp
lea eax, [esp + 0x9c]
push str.___n__W_INT16_i16ReverseKw2TimeInterval___d_mS
push eax
call fcn.004df246
lea edi, [esp + 0xa4]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x1c]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x4f73d0]
sub ecx, edx
cmp ecx, esi
ja 0x4c40c4
call fcn.004deb1b
test esi, esi
jbe 0x4c410b
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [edx + esi]
push ebx
call fcn.00412290
test al, al
je 0x4c410b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push ebx
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x9c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00412270
mov al, byte [esp + 0x13]
sub esp, 0x10
mov ebx, esp
mov dword [esp + 0x38], esp
push 0
mov ecx, ebx
mov byte [ebx], al
call fcn.00411e90
mov edi, str.CCommWithEcu::AddressCodeEnter__
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov ecx, ebx
push ebp
call fcn.00412290
test al, al
je 0x4c4162
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
mov esi, str.CCommWithEcu::AddressCodeEnter__
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
call fcn.00412270
sub esp, 0x10
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
mov byte [esp + 0x550], 6
call fcn.004118e0
push 0xfffffffffffffff6
lea ecx, [esp + 0x120]
mov byte [esp + 0x550], 5
call fcn.004d6c20
mov esi, eax
mov cx, word [esi + 4]
lea edi, [esi + 8]
mov word [esp + 0x74], cx
mov bl, 7
mov dl, byte [edi]
push 0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x530], bl
mov byte [esp + 0x7c], dl
call fcn.00411e90
mov eax, dword [0x4f73d0]
lea ecx, [esp + 0x78]
push eax
push 0
push edi
call fcn.00411c90
add esi, 0x18
lea ecx, [esp + 0x88]
push esi
mov byte [esp + 0x530], 8
call fcn.004118e0
lea ecx, [esp + 0x70]
push 0x509610
push ecx
mov dword [esp + 0x78], 0x4f8190
mov byte [esp + 0x534], bl
call fcn.004dffdb
mov esi, dword [ebx + 0x18]
add esi, 8
movzx ax, byte [esi]
inc esi
test ax, ax
jne 0x4c428b
mov esi, dword [esp + 0x534]
mov dl, byte [esp + 0x4c]
lea ecx, [esp + 0x4c]
mov byte [esi], dl
call fcn.004c7450
test eax, eax
jge 0x4c422f
xor eax, eax
shl eax, 4
push eax
call fcn.004df7b5
mov ecx, dword [esp + 0x54]
add esp, 4
mov dword [esi + 4], eax
push eax
mov eax, dword [esp + 0x58]
push eax
push ecx
mov ecx, esi
call fcn.004c7470
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea edx, [esp + 0x5c]
lea ecx, [esi + 0x10]
push edx
mov byte [esp + 0x530], 9
call fcn.004bf7c0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], 1
mov byte [esp + 0x52c], 0
call fcn.004c87c0
mov eax, esi
jmp 0x4c46af
mov cl, byte [esp + 0x13]
mov byte [esp + 0x30], cl
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
movsx eax, ax
xor ebp, ebp
cmp eax, ecx
mov byte [esp + 0x52c], 0xa
mov dword [esp + 0x28], eax
jle 0x4c4331
movzx di, byte [esi]
inc esi
test di, di
jle 0x4c4314
lea ecx, [esp + 0x24]
call fcn.004be970
push edi
push esi
lea ecx, [esp + 0x2c]
mov byte [esp + 0x534], 0xb
call fcn.004bef10
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x24]
push edx
push 1
push eax
lea ecx, [esp + 0x3c]
call fcn.004126e0
movsx ecx, di
add esi, ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0x52c], 0xa
call fcn.004beab0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
inc ebp
cmp ebp, eax
jl 0x4c42b6
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4c4331
sub ecx, eax
sar ecx, 2
je 0x4c4331
lea edx, [esp + 0x30]
lea ecx, [esp + 0x4c]
push edx
call fcn.004c8a30
call fcn.004cd070
test al, al
je 0x4c45d7
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4c45d7
call fcn.004d1e50
test eax, eax
je 0x4c45d7
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.00411e90
mov edi, 0x520168
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00412290
test al, al
je 0x4c43af
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
mov esi, 0x520168
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 [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x52c], 0xc
call fcn.004be970
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x124]
mov byte [esp + 0x124], 0
rep stosd dword es:[edi], eax
xor esi, esi
lea ecx, [esp + 0x4c]
mov byte [esp + 0x52c], 0xd
mov dword [esp + 0x28], esi
call fcn.004c8ca0
test ax, ax
jle 0x4c4599
mov dword [esp + 0x24], 0
push esi
lea ecx, [esp + 0x50]
call fcn.004c8be0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4c4580
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x24]
sub edx, ecx
sar edx, 2
cmp eax, edx
jae 0x4c4580
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.004c8be0
mov ecx, eax
call fcn.00411b50
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.004be980
lea ecx, [esp + 0x30]
call fcn.004beca0
lea ecx, [esp + 0x2c]
call fcn.004bee50
lea ecx, [esp + 0x2c]
mov ebp, eax
xor esi, esi
call fcn.004bee30
test ax, ax
jle 0x4c449f
lea edi, [esp + 0x124]
xor edx, edx
mov dl, byte [esi + ebp]
push edx
push str._.2X
push edi
call fcn.004df246
add esp, 0xc
lea ecx, [esp + 0x2c]
inc esi
add edi, 3
call fcn.004bee30
movsx eax, ax
cmp esi, eax
jl 0x4c4477
mov edi, str.Ans:
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00412290
test al, al
je 0x4c44e5
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
mov esi, str.Ans:
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 [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], 0
lea edi, [esp + 0x124]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x4f73d0]
sub ecx, edx
cmp ecx, esi
ja 0x4c450d
call fcn.004deb1b
test esi, esi
jbe 0x4c4556
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebp, [edx + esi]
push ebp
call fcn.00412290
test al, al
je 0x4c4556
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, esi
lea esi, [esp + 0x124]
lea edi, [edx + eax]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], 0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4c4563
mov eax, 0x4f7480
mov ecx, dword [ebx + 0x10]
push 0
push eax
call fcn.004d2840
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
inc eax
mov dword [esp + 0x24], eax
jmp 0x4c4400
inc esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], esi
call fcn.004c8ca0
movsx edx, ax
cmp esi, edx
jl 0x4c43f8
lea ecx, [esp + 0x2c]
mov byte [esp + 0x52c], 0xc
call fcn.004beab0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x52c], 0xa
test eax, eax
je 0x4c45d7
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c45ce
cmp al, 0xff
je 0x4c45ce
dec al
mov byte [ecx], al
jmp 0x4c45d7
push ecx
call fcn.004deb10
add esp, 4
mov ebx, dword [esp + 0x534]
mov ecx, dword [esp + 0x50]
mov al, byte [esp + 0x4c]
test ecx, ecx
mov byte [ebx], al
jne 0x4c45f0
xor eax, eax
jmp 0x4c45f9
mov eax, dword [esp + 0x54]
sub eax, ecx
sar eax, 4
test eax, eax
jge 0x4c45ff
xor eax, eax
shl eax, 4
push eax
call fcn.004df7b5
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
add esp, 4
cmp edi, ecx
mov dword [ebx + 4], eax
mov ebp, ecx
mov esi, eax
je 0x4c4632
push edi
push esi
call fcn.004c7980
add edi, 0x10
add esp, 8
add esi, 0x10
cmp edi, ebp
jne 0x4c461e
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
lea ecx, [esp + 0x5c]
lea esi, [ebx + 0x10]
push ecx
mov ecx, esi
mov byte [esp + 0x530], 0xe
call fcn.004c72f0
mov dl, byte [esp + 0x6c]
mov eax, dword [esp + 0x38]
mov byte [esi + 0x10], dl
mov esi, dword [esp + 0x34]
cmp esi, eax
mov dword [esp + 0x40], 1
mov byte [esp + 0x52c], 1
mov edi, eax
je 0x4c4686
mov ecx, esi
call fcn.004beab0
add esi, 4
cmp esi, edi
jne 0x4c4674
mov esi, dword [esp + 0x34]
push esi
call fcn.004deb10
xor eax, eax
add esp, 4
lea ecx, [esp + 0x4c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov byte [esp + 0x52c], al
call fcn.004c87c0
mov eax, ebx
mov ecx, dword [esp + 0x524]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x520
ret 0x18