Function at 0x419d3c
Capabilities:
Get geographical location

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
push str._r_n_______________________CDC_Interface_Descriptor_________________r_n
lea edi, [esi + 1]
call fcn.0040e92d
movzx eax, byte [esi]
push eax
push eax
push str.bFunctionLength__________:_0x_02X___u_bytes__r_n
call fcn.0040e92d
movzx ecx, byte [edi]
add esp, 0x10
push ecx
call fcn.00419d19
push eax
push ecx
push str.bDescriptorType__________:_0x_02X___s__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [edi], 0x24
jne case.0x419daa.9
movzx ecx, byte [esi + 2]
push ecx
call fcn.00419cff
push eax
push ecx
push str.bDescriptorSubType_______:_0x_02X___s__r_n
call fcn.0040e92d
movzx eax, byte [esi + 2]
add esp, 0xc
cmp eax, 9
ja case.default.0x419daa
jmp dword [eax*4 + 0x41a19c]
movzx eax, byte [esi + 3]
push eax
movzx eax, byte [esi + 4]
push eax
movzx eax, word [esi + 3]
push eax
push str.bcdCDC___________________:_0x_03X__CDC_Version__X._02X__r_n
call fcn.0040e92d
add esp, 0x10
jmp 0x41a18e
mov al, byte [esi + 3]
movzx edi, al
mov bl, al
mov cl, al
and cl, 1
push edi
shr bl, 1
push str.bmCapabilities___________:_0x_02X_r_n
and bl, 1
mov byte [esp + 0x20], cl
call fcn.0040e92d
shr edi, 2
push edi
push str._D7..2___________________:_0x_02X__Reserved__r_n
call fcn.0040e92d
add esp, 0x10
mov eax, str.sends_receives_call_management_information_only_over_the_Communication_Class_interface
test bl, bl
je 0x419e12
mov eax, str.can_send_receive_call_management_information_over_a_Data_Class_interface
push eax
movzx eax, bl
push eax
push str._D1______________________:_0x_02X___s__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [esp + 0x18], 0
mov eax, str.does_not_handle_call_management_itself
je 0x419e35
mov eax, str.handles_call_management_itself
push eax
movzx eax, byte [esp + 0x1c]
push eax
push str._D0______________________:_0x_02X___s__r_n
call fcn.0040e92d
movzx eax, byte [esi + 4]
push eax
push str.bDataInterface___________:_0x_02X_r_n
call fcn.0040e92d
add esp, 0x14
jmp 0x41a18e
mov al, byte [esi + 3]
mov cl, al
shr cl, 2
and cl, 1
mov byte [esp + 0x18], cl
mov cl, al
shr cl, 1
and cl, 1
movzx edi, al
mov byte [esp + 0x1c], cl
mov bl, al
mov cl, al
and cl, 1
push edi
shr bl, 3
push str.bmCapabilities___________:_0x_02X_r_n
and bl, 1
mov byte [esp + 0x1c], cl
call fcn.0040e92d
shr edi, 4
push edi
push str._D7..4___________________:_0x_02X__Reserved__r_n
call fcn.0040e92d
add esp, 0x10
mov ebp, str.not
mov edi, 0x4507c1
mov eax, ebp
test bl, bl
je 0x419eb9
mov eax, edi
push eax
movzx eax, bl
push eax
push str._D3______________________:_0x_02X___ssupports_the_notification_Network_Connection__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [esp + 0x18], 0
mov eax, ebp
je 0x419ed6
mov eax, edi
push eax
movzx eax, byte [esp + 0x1c]
push eax
push str._D2______________________:_0x_02X___ssupports_the_request_Send_Break__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [esp + 0x1c], 0
mov eax, ebp
je 0x419ef5
mov eax, edi
push eax
movzx eax, byte [esp + 0x20]
push eax
push str._D1______________________:_0x_02X___ssupports_the_request_combination_of_Set_Line_Coding__Set_Control_Line_State__Get_Line_Coding__and_the_notification_Serial_State__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [esp + 0x14], 0
jne 0x419f12
mov edi, ebp
movzx eax, byte [esp + 0x14]
push edi
push eax
push str._D0______________________:_0x_02X___ssupports_the_request_combination_of_Set_Comm_Feature__Clear_Comm_Feature__and_Get_Comm_Feature__r_n
call fcn.0040e92d
add esp, 0xc
jmp 0x41a18e
mov al, byte [esi + 3]
mov cl, al
shr cl, 1
and cl, 1
movzx edi, al
mov byte [esp + 0x18], cl
mov bl, al
mov cl, al
and cl, 1
push edi
shr bl, 2
push str.bmCapabilities___________:_0x_02X_r_n
and bl, 1
mov byte [esp + 0x24], cl
call fcn.0040e92d
shr edi, 5
push edi
push str._D7..3___________________:_0x_02X__Reserved__r_n
call fcn.0040e92d
add esp, 0x10
mov ebp, str.not
mov edi, 0x4507c1
mov eax, ebp
test bl, bl
je 0x419f7b
mov eax, edi
push eax
movzx eax, bl
push eax
push str._D2______________________:_0x_02X___srequires_extra_Pulse_Setup_request_during_pulse_dialing_sequence_to_disengage_holding_circuit__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [esp + 0x18], 0
mov eax, ebp
je 0x419f98
mov eax, edi
push eax
movzx eax, byte [esp + 0x1c]
push eax
push str._D1______________________:_0x_02X___ssupports_the_request_combination_of_Set_Aux_Line_State__Ring_Aux_Jack__and_notification_Aux_Jack_Hook_State__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [esp + 0x1c], 0
jne 0x419fb5
mov edi, ebp
movzx eax, byte [esp + 0x1c]
push edi
push eax
push str._D0______________________:_0x_02X___ssupports_the_request_combination_of_Pulse_Setup__Send_Pulse__and_Set_Pulse_Time__r_n
jmp 0x419f1e
mov al, byte [esi + 3]
mov ecx, 0x100
test al, al
je 0x419fd5
movzx ecx, al
movzx eax, al
push ecx
push eax
push str.bRingerVolSteps__________:_0x_02X___i_Ringer_Volume_Steps_r_n
call fcn.0040e92d
movzx eax, byte [esi + 4]
push eax
push eax
push str.bNumRingerPatterns_______:_0x_02X___i_Ringer_Patterns_supported__r_n
call fcn.0040e92d
add esp, 0x18
jmp 0x41a18e
push dword [esi + 3]
push str.bmCapabilities___________:_0x_08X_r_n
call fcn.0040e92d
pop ecx
pop ecx
jmp case.0x419daa.9
movzx eax, byte [esi + 3]
push eax
push str.bControlInterface________:_0x_02X_r_n
call fcn.0040e92d
movzx eax, byte [esi]
sub eax, 4
pop ecx
xor edi, edi
pop ecx
test eax, eax
jle 0x41a18e
movzx eax, byte [esi + edi + 4]
push eax
push edi
push str.bSubordinateInterface__u__:_0x_02X_r_n
call fcn.0040e92d
movzx eax, byte [esi]
add esp, 0xc
inc edi
sub eax, 4
cmp edi, eax
jl 0x41a031
jmp 0x41a18e
movzx eax, byte [esi + 3]
push eax
call fcn.00422653
push eax
movzx eax, byte [esi + 3]
push eax
push str.iCountryCodeRelDate______:_0x_02X___s__r_n
call fcn.0040e92d
movzx eax, byte [esi + 3]
add esp, 0xc
test al, al
je 0x41a09c
push 0
push dword [esp + 0x20]
push eax
push dword [esp + 0x20]
call fcn.00410b5f
movzx eax, byte [esi + 3]
mov ecx, dword [0x4bb8ac]
mov byte [eax + ecx + 0x11c], 1
movzx eax, byte [esi]
sub eax, 4
cdq
sub eax, edx
mov edi, eax
sar edi, 1
xor ebx, ebx
test edi, edi
jle 0x41a18e
movzx eax, byte [esi + ebx + 4]
push eax
push ebx
push str.bSubordinateInterface__u__:_0x_04X_r_n
call fcn.0040e92d
add esp, 0xc
inc ebx
cmp ebx, edi
jl 0x41a0b3
jmp 0x41a18e
mov al, byte [esi + 3]
mov cl, al
shr cl, 1
and cl, 1
movzx edi, al
mov byte [esp + 0x18], cl
mov bl, al
mov cl, al
and cl, 1
push edi
shr bl, 2
push str.bmCapabilities___________:_0x_02X_r_n
and bl, 1
mov byte [esp + 0x24], cl
call fcn.0040e92d
shr edi, 5
push edi
push str._D7..3:__________________:_0x_02X__Reserved__r_n
call fcn.0040e92d
add esp, 0x10
mov ebp, str.not
mov edi, 0x4507c1
mov eax, ebp
test bl, bl
je 0x41a121
mov eax, edi
push eax
movzx eax, bl
push eax
push str._D2___:__________________:_0x_02X___ssupports_Computer_Centric_mode__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [esp + 0x18], 0
mov eax, ebp
je 0x41a13e
mov eax, edi
push eax
movzx eax, byte [esp + 0x1c]
push eax
push str._D1___:__________________:_0x_02X___ssupports_Standalone_mode__r_n
call fcn.0040e92d
add esp, 0xc
cmp byte [esp + 0x1c], 0
jne 0x41a15b
mov edi, ebp
movzx eax, byte [esp + 0x1c]
push edi
push eax
push str._D0___:__________________:_0x_02X___ssupports_Simple_mode_r_n
call fcn.0040e92d
add esp, 0xc
xor edi, edi
jmp case.0x419daa.9
lea edi, [esi + 3]
test edi, edi
je 0x41a18e
cmp dword [0x50809c], 0
jne 0x41a18e
mov eax, edi
sub eax, esi
push eax
push edi
call fcn.00422084
push esi
call fcn.004220a0
pop edi
pop esi
pop ebp
pop ebx
ret 0xc