Function at 0x403b80
Capabilities:
Check for time delay via gettickcount
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
add eax, 0xffff8000
push edi
mov esi, ecx
cmp eax, 6
ja case.0x403b99.32773
jmp dword [eax*4 + 0x403dc4]
push str.Enter_case_DBT_DEVICEARRIVAL:__r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [esi + 4], 5
jne case.0x403b99.32773
mov eax, dword [0x436850]
push 0
push 0
push 0x5e5f
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageW]
call fcn.0040cc40
mov ebx, 1
call fcn.0040cc60
cmp dword [0x436c6c], 2
jne 0x403c8b
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 4]
push edx
push 0
push 0x10
push 0
push str.SYSTEMCurrentControlSetControlRadioManagementSystemRadioState
push 0x80000002
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 8], 4
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x403c64
mov eax, dword [ebp - 4]
push eax
push str.Successfully_get_Airplane_mode_Status_in_the_registry_and_the_value_is__d__r_n
call fcn.0040ca40
add esp, 8
cmp dword [ebp - 4], 0
jne 0x403c8b
cmp byte [0x436c74], bl
jne 0x403c8b
push 0
mov byte [0x436c74], 0
call fcn.0040cc10
add esp, 4
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [0x436c6c], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_get_Airplane_mode_Status_in_the_registry_____Error_code:_d__r_n
call fcn.0040ca40
add esp, 8
mov dword [0x436c6c], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00401380
mov dword [0x436c6c], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.Enter_case_DBT_DEVICEREMOVECOMPLETE:__r_n
call edi
cmp dword [esi + 4], 5
jne case.0x403b99.32773
push str.Enter_case_if_pHdr__dbch_devicetype__DBT_DEVTYP_DEVICEINTERFACE___r_n
call edi
cmp dword [0x436c64], 0
je 0x403d22
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x436c64]
cmp eax, 0x2ee0
jae 0x403d22
call esi
mov ecx, eax
mov eax, dword [0x436c64]
sub ecx, eax
push ecx
push eax
call esi
push eax
push str.Card_Drop:__d____d___d___r_n
call fcn.0040ca40
mov edx, dword [0x436850]
add esp, 0x10
push 0
push 0
push 0x5e61
push edx
call dword [sym.imp.USER32.dll_PostThreadMessageW]
xor ebx, ebx
call fcn.0040cc60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x436c6c], 1
je 0x403d3c
push str.the_condition_is_g_DeviceMode___DeviceMode_NORMAL_n
call edi
mov dword [0x436c6c], 2
mov eax, dword [0x436850]
push 0
push 0
push 0x5e61
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageW]
xor ebx, ebx
call fcn.0040cc60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 4], 6
jne case.0x403b99.32773
or dword [0x436c70], 1
call fcn.00403400
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Enter_case_DBT_DEVICEQUERYREMOVE:__r_n
mov dword [0x436c6c], 1
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Enter_case_DBT_DEVICEQUERYREMOVEFAILED:__r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Enter_case_DBT_DEVICEREMOVEPENDING:__r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret