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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [0x552a00]
push ebx
push esi
push edi
mov edi, dword [edx + ecx*4 + 0x18]
mov ebx, dword [edi + 8]
mov eax, dword [ebx + 0x30]
push 0xffffffffffffffff
xor esi, esi
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], esi
call dword [sym.imp.RTX_RTSS.SYS_RtWaitForSingleObject]
add ebx, 0x34
push ebx
call dword [sym.imp.RTX_RTSS.SYS_InterlockedIncrement]
cmp eax, 1
je 0x402e66
push 0x6dd
push str.........esdcandrv_rtxesdcan.c
push 0x551ff8
call dword [sym.imp.RTX_RTSS.SYS_RtPrintf]
add esp, 0xc
cmp dword [edi], esi
jne 0x402e8a
push ebx
call dword [sym.imp.RTX_RTSS.SYS_InterlockedDecrement]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x30]
push edx
call dword [sym.imp.RTX_RTSS.SYS_RtReleaseMutex]
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
cmp eax, 0x830006
ja 0x403511
je 0x403504
cmp eax, 0x190006
ja 0x4031a8
je 0x4030ec
cmp eax, 0x110006
ja 0x402ff3
je 0x402faa
cmp eax, 0x40006
ja 0x402f84
je 0x402f60
cmp eax, 0x10006
je 0x402f0c
cmp eax, 0x20006
jne 0x4039b0
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
mov edx, dword [edx + 0xc]
cmp edx, 4
jb 0x403665
push edx
push ecx
push 4
jmp 0x403a00
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x10]
test al, 3
jne 0x403274
mov ecx, dword [edx + 8]
mov eax, dword [ecx]
test eax, eax
jns 0x402f3e
and dword [ecx + 4], 0x7fffffff
and eax, 0x7fffffff
mov dword [ecx], eax
mov eax, dword [edi + 0xa8]
or eax, 0x80000000
jmp 0x402f44
mov eax, dword [edi + 0xa8]
mov edx, dword [ecx + 4]
sub edx, dword [ecx]
inc edx
mov dword [ebp - 0xc], edx
mov ecx, dword [ecx]
push ecx
lea ecx, [ebp - 0xc]
call fcn.00402a70
add esp, 4
jmp 0x403a0d
mov edx, dword [edx + 8]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x402f6d
mov dword [edi + 0x70], eax
mov edx, dword [edx + 4]
cmp edx, 0xffffffff
je 0x403a0f
mov dword [edi + 0xa0], edx
jmp 0x403a0f
cmp eax, 0x50006
je 0x402fa0
cmp eax, 0x90006
jne 0x4039b0
mov ecx, 0x10
jmp 0x4030f1
mov ecx, 0x10
jmp 0x403259
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0x10], 4
lea eax, [edx + 0x10]
jae 0x402fce
mov esi, 8
jmp 0x403a0f
push 0
push 0
push 3
push edi
call fcn.00402d80
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x403a0f
mov dword [ebp - 4], 4
jmp 0x403a0f
cmp eax, 0x160006
ja 0x403080
je 0x40305e
cmp eax, 0x140006
je 0x403037
cmp eax, 0x150006
jne 0x4039b0
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x10]
mov edx, dword [edx + 8]
test al, 3
jne 0x403274
mov eax, dword [edi + 0xa0]
mov dword [edx], eax
mov dword [ebp - 4], 4
jmp 0x403a0f
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x10]
mov edx, dword [edx + 8]
test al, 3
jne 0x403274
push edx
push edi
call fcn.004066e0
add esp, 8
mov dword [ebp - 4], 4
jmp 0x403a0d
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov edx, dword [edx + 8]
test al, 3
jne 0x403274
mov ecx, dword [edi + 0x70]
mov dword [edx], ecx
mov dword [ebp - 4], 4
jmp 0x403a0f
cmp eax, 0x170006
je 0x4030af
cmp eax, 0x180006
jne 0x4039b0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x24]
mov edx, dword [edx + 8]
mov eax, dword [ecx + 0x158]
mov dword [edx], eax
mov dword [ebp - 4], 4
jmp 0x403a0f
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x10]
mov ebx, dword [edx + 8]
test al, 3
jne 0x403274
mov edx, dword [ebx]
mov eax, dword [edi + 0xac]
push 1
push edx
push eax
push edi
call fcn.004069a0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x403a0f
mov ecx, dword [ebx]
mov dword [edi + 0xb0], ecx
jmp 0x403a0f
mov ecx, 0x18
mov ebx, dword [edx + 8]
mov edx, dword [edi + 8]
mov eax, dword [edx + 0x10]
test al, 3
jne 0x403274
mov eax, dword [edi + 0x3c]
cmp dword [eax + 0x10], esi
je 0x403114
mov esi, 0xe0000011
jmp 0x403a0f
mov dword [eax + 0x10], 2
test dword [edi + 0xbc], 0x10000000
mov eax, dword [edi + 0xb4]
mov dword [edi + 0xb8], eax
mov dword [edi + 0xa4], ecx
je 0x403165
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
push eax
push ebx
push edi
call fcn.004094b0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x403a0f
mov eax, dword [edi + 0x3c]
mov dword [eax + 0x10], 0
jmp 0x403a0f
push ebx
push 0
push edi
call fcn.00407f30
mov esi, eax
xor eax, eax
add esp, 0xc
cmp esi, eax
je 0x403184
mov ecx, dword [edi + 0x3c]
mov dword [ecx + 0x10], eax
jmp 0x403a0f
mov dword [ebp - 4], 4
cmp dword [ebx], eax
jne 0x403179
push eax
push edi
call fcn.00406760
mov edx, dword [edi + 0x3c]
add esp, 8
mov dword [edx + 0x10], 0
jmp 0x403a0f
cmp eax, 0x270006
ja 0x403386
je 0x403361
cmp eax, 0x1e0006
ja 0x4032e7
je 0x403254
cmp eax, 0x1c0006
je 0x403203
cmp eax, 0x1d0006
jne 0x4039b0
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov edx, dword [edx + 8]
test al, 3
jne 0x403274
mov ecx, dword [edx + 8]
mov eax, dword [edx + 4]
push ecx
mov ecx, dword [edx]
push eax
push ecx
push edi
call fcn.004069a0
jmp 0x403a0a
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
test al, 3
jne 0x403274
mov ecx, dword [edx + 8]
mov eax, dword [ecx]
test eax, eax
jns 0x40323b
and eax, 0x7fffffff
mov dword [ecx], eax
mov eax, dword [edi + 0xa8]
lea edx, [ecx + 4]
mov ecx, dword [ecx]
push edx
push ecx
or eax, 0x80000000
push eax
push edi
call fcn.00409300
jmp 0x403a0a
mov eax, dword [edi + 0xa8]
lea edx, [ecx + 4]
mov ecx, dword [ecx]
push edx
push ecx
push eax
push edi
call fcn.00409300
jmp 0x403a0a
mov ecx, 0x18
mov edx, dword [edx + 8]
mov eax, dword [edx]
mov dword [ebp - 0xc], eax
mov dword [edx], esi
mov edx, dword [edi + 8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 4], 4
test al, 3
je 0x403285
movzx esi, al
and esi, 2
or esi, 0xe000000d
jmp 0x403a0f
mov eax, dword [edi + 0x3c]
test byte [eax], 1
je 0x403297
mov esi, 0xe0000010
jmp 0x403a0f
mov dword [eax], 2
mov eax, dword [edi + 0x84]
mov dword [edi + 0x74], ecx
lea ecx, [ebp - 0xc]
push ecx
push 0
push edi
mov dword [edi + 0x88], eax
call fcn.0040a8b0
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov esi, eax
mov eax, dword [edx + 8]
add esp, 0xc
mov dword [eax], ecx
test esi, esi
je 0x4032e0
cmp dword [ebp - 0xc], 0
jne 0x4032e0
mov edx, dword [edi + 0x3c]
mov dword [edx], 0
jmp 0x403a0f
xor esi, esi
jmp 0x403a0f
cmp eax, 0x250006
je 0x40333c
cmp eax, 0x260006
jne 0x4039b0
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0x10], 0x18
lea eax, [edx + 0x10]
jb 0x403665
push 0
push 0
push 0x1d
push edi
call fcn.00402d80
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x403a0f
mov dword [ebp - 4], 0x18
jmp 0x403a0f
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0xc], 0x18
jb 0x403665
push 0x18
push ecx
push 0x1e
jmp 0x403a00
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0xc], 4
jb 0x403665
push 4
push ecx
push 0x21
jmp 0x403a00
cmp eax, 0x800006
ja 0x4034d4
je 0x4034c1
cmp eax, 0x280006
je 0x403498
cmp eax, 0x7f0006
jne 0x4039b0
mov ecx, dword [edx + 8]
mov edx, dword [ecx + 4]
sub edx, 4
mov ebx, dword [ebp - 8]
mov eax, dword [ebx + 0x24]
je 0x4033f6
sub edx, 0x7c
je 0x4033e5
mov eax, dword [ebp + 8]
push 0x28
push ecx
push 0xa
add eax, 0x10
push edi
call fcn.00402d80
add esp, 0x10
mov esi, eax
mov dword [ebp - 4], 0x28
jmp 0x403a0f
mov esi, 1
mov dword [ebp - 4], 0x28
jmp 0x403a0f
mov edx, 0x3a01
mov word [ecx + 8], dx
movzx edx, word [eax + 0x134]
shl dx, 4
or dx, word [eax + 0x138]
mov dword [ebp - 4], 0x28
shl dx, 8
or dx, word [eax + 0x13c]
mov word [ecx + 0xa], dx
movzx edx, word [eax + 0x14c]
shl dx, 4
or dx, word [eax + 0x150]
shl dx, 8
or dx, word [eax + 0x154]
mov word [ecx + 0xc], dx
mov eax, dword [edi + 8]
movzx edx, word [eax + 0xc]
mov word [ecx + 0xe], dx
mov eax, dword [str.CAN_PCI405]
mov dword [ecx + 0x10], eax
mov edx, dword [0x552024]
mov dword [ecx + 0x14], edx
mov ax, word [0x552028]
mov word [ecx + 0x18], ax
mov dl, byte [0x55202a]
mov byte [ecx + 0x1a], dl
mov eax, dword [edi + 8]
movzx edx, word [eax + 8]
mov word [ecx + 0x1e], dx
mov al, byte [ebx + 0xec]
mov byte [ecx + 0x20], al
xor eax, eax
mov dword [ecx + 0x21], eax
mov byte [ecx + 0x25], al
jmp 0x403a0f
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0x10], 4
lea eax, [edx + 0x10]
jb 0x403665
push 0
push 0
push 0x20
jmp 0x402fd4
push 0x3e3
push edi
call fcn.00406760
add esp, 8
jmp 0x403a0d
cmp eax, 0x810006
je 0x4034f0
cmp eax, 0x820006
jne 0x4039b0
mov ecx, 0x10
jmp 0x40362d
push 0
push 0
push 0x3e3
push edi
call fcn.00408e90
jmp 0x403a0a
mov esi, 3
lea ecx, [esi + 0xd]
jmp 0x40362f
cmp eax, 0x930006
ja 0x4037a6
je 0x4036bd
cmp eax, 0x8b0006
ja 0x4035d5
je 0x4035a0
cmp eax, 0x860006
ja 0x403571
je 0x403564
cmp eax, 0x840006
je 0x403557
cmp eax, 0x850006
jne 0x4039b0
mov esi, 4
lea ecx, [esi + 0xc]
jmp 0x40362f
mov esi, 2
lea ecx, [esi + 0xe]
jmp 0x40362f
mov esi, 1
lea ecx, [esi + 0xf]
jmp 0x40362f
cmp eax, 0x870006
je 0x403a0f
cmp eax, 0x8a0006
jne 0x4039b0
mov eax, edx
mov ecx, dword [eax + 8]
add eax, 0x10
cmp dword [eax], 8
jb 0x402fc4
push 0
push 0
push 1
jmp 0x4035b6
cmp dword [edx + 0x10], 8
mov ecx, dword [edx + 8]
lea eax, [edx + 0x10]
jb 0x402fc4
push 0
push 0
push 2
push edi
call fcn.00402d80
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x403a0f
mov dword [ebp - 4], 8
jmp 0x403a0f
cmp eax, 0x8f0006
ja 0x40360c
je 0x403603
cmp eax, 0x8d0006
je 0x4035f9
cmp eax, 0x8e0006
jne 0x4039b0
mov esi, 6
xor ecx, ecx
jmp 0x40362f
mov esi, 5
lea ecx, [esi + 0x1b]
jmp 0x40362f
mov esi, 7
xor ecx, ecx
jmp 0x40362f
cmp eax, 0x910006
je 0x403628
cmp eax, 0x920006
jne 0x4039b0
mov esi, 3
lea ecx, [esi + 0x4d]
jmp 0x40362f
mov ecx, 0x50
xor esi, esi
mov edx, dword [edi + 8]
mov dword [ebp - 0xc], 1
mov eax, dword [edx + 0x10]
test al, 3
jne 0x403274
mov ebx, dword [edi + 0x3c]
test byte [ebx], 1
jne 0x40328d
test ecx, ecx
je 0x40367d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
xor edx, edx
div ecx
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x40366f
mov esi, 0x57
jmp 0x403a0f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
mov dword [edi + 0x80], eax
jmp 0x403687
mov dword [edi + 0x80], 0
mov dword [ebx], 4
mov dword [edi + 0x78], ecx
lea ecx, [ebp - 0xc]
push ecx
push esi
push edi
mov dword [edi + 0x7c], 0
call fcn.004099c0
mov edx, dword [edi + 0x3c]
mov dword [edi + 0x80], 0
add esp, 0xc
mov dword [edx], 0
jmp 0x403a0d
mov eax, edx
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 8]
mov ebx, dword [edx + 0x24]
add eax, 0x10
cmp dword [eax], 0x100
mov dword [ebp - 0xc], ecx
jb 0x403665
push 0
push 0
push 0x1f
push edi
call fcn.00402d80
mov al, byte [ebx + 0x12d]
mov edi, dword [ebp - 0xc]
mov byte [edi + 0x1d], al
mov cl, byte [ebx + 0x12c]
mov byte [edi + 0x1e], cl
mov edx, dword [ebx + 0x158]
mov dword [edi + 0xc], edx
movzx eax, word [ebx + 0x126]
mov word [edi + 0x20], ax
mov ecx, 0x3a01
mov word [edi + 4], cx
mov dx, word [ebx + 0x134]
shl dx, 4
or dx, word [ebx + 0x138]
shl dx, 8
or dx, word [ebx + 0x13c]
mov word [edi + 2], dx
movzx eax, word [ebx + 0x140]
shl ax, 4
or ax, word [ebx + 0x144]
shl ax, 8
or ax, word [ebx + 0x148]
mov word [edi + 0x22], ax
mov cx, word [ebx + 0x14c]
shl cx, 4
or cx, word [ebx + 0x150]
shl cx, 8
or cx, word [ebx + 0x154]
mov word [edi], cx
mov edx, dword [ebx + 0x128]
mov eax, dword [edx + 8]
push eax
push 0x55202c
lea ecx, [edi + 0x24]
push 0x20
push ecx
call fcn.00406470
add esp, 0x20
mov byte [edi + 0xff], 0x18
mov dword [ebp - 4], 0x100
jmp 0x403a0f
cmp eax, 0x9b0006
ja 0x403924
je 0x4038fb
cmp eax, 0x980006
ja 0x403867
je 0x403824
cmp eax, 0x960006
je 0x4037ff
cmp eax, 0x970006
jne 0x4039b0
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0x10], 4
lea eax, [edx + 0x10]
jb 0x403665
push 0
push 0
push 8
jmp 0x402fd4
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0xc], 4
jb 0x403665
push 4
push ecx
push 9
jmp 0x403a00
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0x10], 0x28
lea eax, [edx + 0x10]
jb 0x403665
push 0
push 0
push 0xe
push edi
call fcn.00402d80
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x403a0f
mov dword [ebp - 4], 0x28
jmp 0x403a0f
cmp eax, 0x990006
je 0x403892
cmp eax, 0x9a0006
jne 0x4039b0
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x10]
test al, 3
jne 0x403274
push 0
push 0
push 0xc
jmp 0x403a00
mov edx, dword [edx + 0x10]
mov eax, dword [edi + 8]
mov dword [ebp - 0xc], edx
mov eax, dword [eax + 0x10]
test al, 3
jne 0x403274
cmp edx, 0x50
jb 0x403665
push 0
push 0
push 0xb
push edi
lea eax, [ebp - 0xc]
lea ecx, [ebp - 0x5c]
call fcn.00402d80
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x403a0f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0xc]
cmp eax, ecx
jae 0x4038e0
mov dword [ebp - 4], eax
jmp 0x4038e5
mov eax, ecx
mov dword [ebp - 4], ecx
mov edx, dword [edx + 8]
push eax
lea ecx, [ebp - 0x5c]
push ecx
push edx
call fcn.00401870
add esp, 0xc
jmp 0x403a0f
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0x10], 4
lea eax, [edx + 0x10]
jb 0x403665
push 0
push 0
push 0xd
jmp 0x402fd4
cmp eax, 0xa40006
ja 0x4039a2
je 0x403979
cmp eax, 0xa20006
je 0x403960
cmp eax, 0xa30006
jne 0x4039b0
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0xc], 4
jb 0x403665
push 4
push ecx
push 0x19
jmp 0x403a00
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x10]
test al, 3
jne 0x403274
push 0
push 0
push 0x11
jmp 0x403a00
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0x10], 4
lea eax, [edx + 0x10]
jb 0x403665
push 0
push 0
push 0x1a
jmp 0x402fd4
cmp eax, 0xa50006
je 0x4039e0
cmp eax, 0xa60006
je 0x4039b7
mov esi, 1
jmp 0x403a0f
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0x10], 4
lea eax, [edx + 0x10]
jb 0x403665
push 0
push 0
push 0x1b
jmp 0x402fd4
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [edx + 8]
test al, 3
jne 0x403274
cmp dword [edx + 0xc], 4
jb 0x403665
push 4
push ecx
push 0x1b
push edi
xor eax, eax
xor ecx, ecx
call fcn.00402d80
add esp, 0x10
mov esi, eax
mov edi, dword [ebp - 8]
lea eax, [edi + 0x34]
push eax
call dword [sym.imp.RTX_RTSS.SYS_InterlockedDecrement]
mov ecx, dword [edi + 0x30]
push ecx
call dword [sym.imp.RTX_RTSS.SYS_RtReleaseMutex]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
pop edi
mov dword [eax + 0x14], edx
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret