Function at 0x40c840
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x4dc1bc]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x10c]
cmp dword [eax], 0
je 0x40c86b
xor eax, eax
jmp 0x40cdfa
mov cx, word [0x4c31c8]
mov word [ebp - 0x108], cx
push 0x102
push 0
lea edx, [ebp - 0x106]
push edx
call fcn.004917a0
add esp, 0xc
push str.SSCardDriver.dll
push 0x4e3490
push 0x4c31e0
lea eax, [ebp - 0x108]
push eax
call fcn.00401980
add esp, 0x10
push 0x5c
push 0x4c3208
call fcn.0048f6b0
add esp, 8
test eax, eax
je 0x40c8da
push 0x5c
push 0x4c321c
call fcn.0048f6b0
add esp, 8
add eax, 1
mov dword [ebp - 0x124], eax
jmp 0x40c8e4
mov dword [ebp - 0x124], 0x4c3230
lea ecx, [ebp - 0x108]
push ecx
push 0x4c31e8
push 0xb
mov edx, dword [ebp - 0x124]
push edx
push 2
call fcn.00471440
add esp, 0x14
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, dword [ebp - 0x10c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x10c]
cmp dword [edx], 0
jne 0x40c9e2
push 0x5c
push 0x4c3264
call fcn.0048f6b0
add esp, 8
test eax, eax
je 0x40c954
push 0x5c
push 0x4c3278
call fcn.0048f6b0
add esp, 8
add eax, 1
mov dword [ebp - 0x128], eax
jmp 0x40c95e
mov dword [ebp - 0x128], 0x4c328c
push 0x4c3244
push 0xf
mov eax, dword [ebp - 0x128]
push eax
push 1
call fcn.00471440
add esp, 0x10
mov dword [ebp - 0x11c], 0x4c32a0
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0x11c]
mov cl, byte [eax]
mov byte [ebp - 0x10d], cl
mov edx, dword [ebp - 0x114]
mov al, byte [ebp - 0x10d]
mov byte [edx], al
mov ecx, dword [ebp - 0x11c]
add ecx, 1
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x114]
add edx, 1
mov dword [ebp - 0x114], edx
cmp byte [ebp - 0x10d], 0
jne 0x40c995
mov eax, 0xfffffffb
jmp 0x40cdfa
push 0x4c32c0
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0xc], eax
push str.iInitParms
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x18], eax
push 0x4c32dc
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x10], eax
push 0x4c32f4
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x14], eax
push 0x4c330c
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x1c], eax
push 0x4c3318
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x20], eax
push 0x4c332c
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x24], eax
push 0x4c3340
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x28], eax
push 0x4c334c
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x2c], eax
push 0x4c3364
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x30], eax
push 0x4c337c
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x34], eax
push 0x4c3388
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x38], eax
push 0x4c3394
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x3c], eax
push 0x4c33a0
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x40], eax
push 0x4c33b8
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x44], eax
push 0x4c33d0
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x48], eax
push 0x4c33e8
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x4c], eax
push 0x4c33f4
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x50], eax
push 0x4c340c
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x54], eax
push 0x4c3424
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x58], eax
push 0x4c343c
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x5c], eax
push 0x4c3448
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x60], eax
push 0x4c345c
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x64], eax
push 0x4c3470
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x68], eax
push 0x4c3484
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x6c], eax
push 0x4c3494
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x70], eax
push str.iGetDevUID
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x10c]
mov dword [edx + 0x7c], eax
mov eax, dword [ebp - 0x10c]
cmp dword [eax + 0xc], 0
je 0x40cd25
mov ecx, dword [ebp - 0x10c]
cmp dword [ecx + 0x10], 0
je 0x40cd25
mov edx, dword [ebp - 0x10c]
cmp dword [edx + 0x14], 0
je 0x40cd25
mov eax, dword [ebp - 0x10c]
cmp dword [eax + 0x6c], 0
jne 0x40cdf8
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x10c]
mov dword [eax], 0
push 0x5c
push 0x4c34d4
call fcn.0048f6b0
add esp, 8
test eax, eax
je 0x40cd6d
push 0x5c
push 0x4c34e8
call fcn.0048f6b0
add esp, 8
add eax, 1
mov dword [ebp - 0x12c], eax
jmp 0x40cd77
mov dword [ebp - 0x12c], 0x4c34fc
push 0x4c34b0
push 0x3d
mov ecx, dword [ebp - 0x12c]
push ecx
push 1
call fcn.00471440
add esp, 0x10
mov dword [ebp - 0x120], 0x4c3510
mov edx, dword [ebp + 8]
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x134], eax
mov ecx, dword [ebp - 0x120]
mov dl, byte [ecx]
mov byte [ebp - 0x10e], dl
mov eax, dword [ebp - 0x118]
mov cl, byte [ebp - 0x10e]
mov byte [eax], cl
mov edx, dword [ebp - 0x120]
add edx, 1
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x118]
add eax, 1
mov dword [ebp - 0x118], eax
cmp byte [ebp - 0x10e], 0
jne 0x40cdae
mov eax, 0xffffff91
jmp 0x40cdfa
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00478787
mov esp, ebp
pop ebp
ret 4