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

Disassembly:
sub esp, 0x8c
push ebx
mov ebx, dword [esp + 0x9c]
push ebp
mov ebp, dword [esp + 0x98]
mov eax, dword [ebp]
xor ecx, ecx
push esi
mov esi, dword [ebp + 0xc]
cmp esi, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], eax
jne 0x437753
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret
push edi
mov edi, dword [esp + 0xa4]
cmp edi, ecx
mov edx, 0x62
je 0x437767
movzx edx, byte [edi]
mov dword [esp + 0x10], edx
add edx, 0xffffffed
cmp edx, 0x8a
ja case.0x437781.21
movzx edx, byte [edx + 0x4382a4]
jmp dword [edx*4 + 0x43823c]
movsx ecx, word [edi + 0x1e]
mov eax, dword [edi + 0x24]
mov edx, dword [eax + 0x10]
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*8]
cmp byte [eax], 0
jne 0x4377a9
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
jmp 0x438216
mov dl, byte [eax + 1]
test dl, dl
je 0x4377ca
mov ecx, dword [ecx + 0xc]
mov edx, dword [eax + 4]
push ebx
push ecx
push edx
push 0x1c
mov eax, esi
call fcn.00414dd0
add esp, 0x10
jmp 0x438216
xor ecx, ecx
mov eax, dword [edi + 0x18]
cmp eax, ecx
jge 0x4377e3
movsx eax, word [edi + 0x1c]
add eax, dword [ebp + 0x50]
mov dword [esp + 0x20], eax
jmp 0x438216
mov ecx, dword [esp + 0xa8]
movsx edx, word [edi + 0x1c]
push ecx
push eax
mov eax, dword [edi + 0x28]
push edx
push eax
mov ebx, ebp
call fcn.00437690
add esp, 0x10
mov dword [esp + 0x20], eax
jmp 0x438216
mov ecx, dword [esp + 0xa8]
push ecx
xor ebx, ebx
mov eax, edi
mov ecx, ebp
call fcn.0041a680
add esp, 4
jmp 0x438216
mov edx, dword [esp + 0xa8]
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x1c]
push edx
push 0
call fcn.0041a630
add esp, 8
jmp 0x438216
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 4]
mov edi, dword [esp + 0x1c]
push 0
push ecx
mov ecx, dword [esp + 0xb0]
push 0x5e
xor eax, eax
xor edx, edx
call fcn.004197c0
add esp, 0xc
jmp 0x438216
push esi
mov eax, ebx
xor ecx, ecx
mov edx, 0xa
call fcn.00414e70
add esp, 4
jmp 0x438216
mov edx, dword [esp + 0xa4]
mov ecx, dword [edx + 4]
add ecx, 2
call fcn.00408380
mov edi, dword [esp + 0x1c]
mov esi, eax
dec esi
push esi
mov eax, edi
call fcn.0040a040
push eax
mov ebx, ecx
call fcn.00412e20
mov ecx, dword [esp + 0xb0]
push 0xffffffffffffffff
push eax
mov eax, esi
cdq
sub eax, edx
mov edx, eax
sar edx, 1
push 0xb
xor eax, eax
call fcn.004197c0
add esp, 0x14
jmp 0x438216
movsx ecx, word [edi + 0x1c]
push esi
mov eax, ebx
mov edx, 0xc
call fcn.00414e70
mov edi, dword [edi + 4]
mov al, byte [edi + 1]
add esp, 4
test al, al
je 0x438216
push esi
xor ecx, ecx
mov edx, edi
mov eax, 0xffffffff
call fcn.00415110
add esp, 4
jmp 0x438216
mov eax, dword [edi + 0x18]
mov dword [esp + 0x20], eax
jmp 0x438216
mov ecx, dword [edi + 8]
mov eax, ebx
mov edx, ebp
call fcn.0040eb70
mov dword [esp + 0x20], eax
jmp 0x438216
mov ecx, dword [edi + 8]
push ebx
push ecx
push ebp
call fcn.00437710
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 4]
add esp, 0xc
call fcn.0040efb0
movsx edi, al
mov eax, dword [esp + 0x20]
add edi, 0x2c
cmp eax, ebx
je 0x43796a
mov ecx, dword [esp + 0x20]
push esi
mov eax, ebx
mov edx, 0xf
call fcn.00414e70
add esp, 4
mov dword [esp + 0x20], ebx
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
push edx
mov eax, esi
mov ecx, edi
call fcn.00414e50
add esp, 4
mov ecx, 1
mov edi, esi
mov eax, ebp
call fcn.0040eb30
jmp 0x438216
mov ecx, dword [edi + 8]
lea eax, [esp + 0x2c]
push eax
push ecx
mov ebx, ebp
call fcn.00415d80
lea edx, [esp + 0x38]
mov esi, eax
mov eax, dword [edi + 0xc]
push edx
push eax
call fcn.00415d80
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x20]
push 0x10
push ecx
push eax
jmp 0x437a00
mov ecx, dword [edi + 8]
lea eax, [esp + 0x2c]
push eax
push ecx
mov ebx, ebp
call fcn.00415d80
lea edx, [esp + 0x38]
mov esi, eax
mov eax, dword [edi + 0xc]
push edx
push eax
call fcn.00415d80
mov ecx, dword [esp + 0xb8]
push 0x90
push ecx
push eax
mov eax, dword [esp + 0x2c]
xor edx, edx
cmp eax, 0x46
sete dl
add edx, 0x4b
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
push esi
push edx
push ebp
call fcn.004301d0
add esp, 0x28
jmp 0x438216
mov ecx, dword [edi + 8]
lea eax, [esp + 0x2c]
push eax
push ecx
mov ebx, ebp
call fcn.00415d80
lea edx, [esp + 0x38]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0xc]
push edx
push eax
call fcn.00415d80
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x34]
push ecx
push edx
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, esi
call fcn.00414dd0
add esp, 0x20
jmp 0x438216
mov eax, dword [edi + 8]
mov cl, byte [eax]
cmp cl, 0x81
jne 0x437a8b
mov ecx, dword [esp + 0xa8]
push ecx
mov ebx, 1
mov ecx, ebp
call fcn.0041a680
mov edx, dword [esp + 0xac]
add esp, 4
mov dword [esp + 0x20], edx
jmp 0x438216
cmp cl, 0x82
jne 0x437ab9
mov edx, dword [esp + 0xa8]
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x1c]
push edx
push 1
call fcn.0041a630
mov edx, dword [esp + 0xb0]
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x438216
mov eax, ebp
call fcn.0040ec00
push esi
xor ecx, ecx
mov edx, 7
mov dword [esp + 0x30], eax
call fcn.00414e70
mov ecx, dword [edi + 8]
lea eax, [esp + 0x34]
push eax
push ecx
mov ebx, ebp
call fcn.00415d80
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x38]
push edx
push ecx
push eax
push 0x57
mov eax, esi
call fcn.00414dd0
mov edx, dword [esp + 0xc4]
add esp, 0x1c
mov dword [esp + 0x20], edx
jmp 0x438216
mov ecx, dword [edi + 8]
lea eax, [esp + 0x2c]
push eax
push ecx
mov ebx, ebp
call fcn.00415d80
mov edx, dword [esp + 0x18]
mov ecx, eax
mov eax, dword [esp + 0xb0]
push esi
mov dword [esp + 0x2c], eax
call fcn.00414e70
add esp, 0xc
jmp 0x438216
mov eax, dword [esp + 0xa8]
push esi
mov ecx, 1
mov edx, 7
call fcn.00414e70
mov eax, dword [edi + 8]
lea edx, [esp + 0x30]
push edx
push eax
mov ebx, ebp
call fcn.00415d80
mov ecx, dword [esp + 0x1c]
push esi
call fcn.00414e50
mov ecx, dword [esp + 0xb8]
mov edi, eax
push esi
or eax, 0xffffffff
mov edx, 0x14
call fcn.00414e70
push edi
mov ecx, esi
call fcn.0040d680
add esp, 0x18
jmp 0x438216
mov eax, dword [edi + 0x24]
cmp eax, ecx
jne 0x437bb8
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx + 4]
push edx
push str.misuse_of_aggregate:__s__
mov edi, ebp
call fcn.00418b00
add esp, 8
jmp 0x438216
movsx ecx, word [edi + 0x1e]
mov edx, dword [eax + 0x20]
shl ecx, 4
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x20], eax
jmp 0x438216
test byte [edi + 3], 0x20
mov edx, dword [eax + 8]
mov eax, dword [edx + 0xc]
mov dl, byte [eax + 0x49]
mov dword [esp + 0x18], ecx
mov byte [esp + 0x10], dl
mov dword [esp + 0x28], ecx
je 0x437c3b
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], ecx
mov ebx, ecx
mov esi, dword [edi + 4]
mov ecx, esi
call fcn.00408380
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push 0
push ecx
push ebx
push eax
push esi
push edx
mov dword [esp + 0x50], eax
call fcn.0041b710
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x437c4e
mov eax, dword [esp + 0x38]
push esi
push eax
push str.unknown_function:__.s__
mov edi, ebp
call fcn.00418b00
add esp, 0xc
jmp 0x438216
mov eax, dword [edi + 0x10]
cmp eax, ecx
mov dword [esp + 0x34], eax
je 0x437bee
mov ebx, dword [eax]
mov dword [esp + 0x24], ebx
jmp 0x437bf4
mov ecx, dword [esp + 0x10]
test byte [ecx + 3], 0x40
je 0x437cf2
mov eax, dword [esp + 0x1c]
call fcn.00414e90
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0xc]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x14], eax
mov eax, dword [edx]
mov edi, ebp
call fcn.00415dc0
cmp ebx, 1
jle 0x437ce9
mov eax, dword [esp + 0x24]
dec eax
mov ebx, 0x14
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, esi
mov edx, 0x4a
call fcn.00414e70
add esp, 4
mov ecx, 1
mov edi, esi
mov eax, ebp
call fcn.0040ea60
call fcn.0040ea90
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + ebx]
mov edi, ebp
call fcn.00415dc0
mov ecx, 1
mov eax, ebp
call fcn.0040eaa0
mov eax, dword [esp + 0x18]
add ebx, 0x14
dec eax
mov dword [esp + 0x18], eax
jne 0x437c93
mov edx, dword [esp + 0x14]
jmp 0x43820d
mov eax, dword [esp + 0x34]
test eax, eax
je 0x437d37
mov esi, ebx
mov ecx, ebp
call fcn.0040ec60
mov ecx, eax
mov eax, ebp
mov dword [esp + 0x24], ecx
call fcn.0040ea90
mov eax, dword [esp + 0x34]
push 1
push ecx
mov ecx, ebp
call fcn.00420330
add esp, 8
mov ecx, 1
mov eax, ebp
call fcn.0040eaa0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
jmp 0x437d3f
mov dword [esp + 0x24], 0
cmp ebx, 2
jl 0x437d5a
mov dl, byte [edi + 2]
test dl, dl
jns 0x437d5a
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
push ebx
push ecx
push eax
mov eax, dword [edx + 0x14]
jmp 0x437d6a
test ebx, ebx
jle 0x437d76
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
push ebx
push ecx
push eax
mov eax, dword [edx]
call fcn.0041d310
add esp, 0xc
mov dword [esp + 0x10], eax
xor esi, esi
test ebx, ebx
jle 0x437ddb
xor edi, edi
mov edi, edi
cmp edi, 0x280
jge 0x437da8
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + edi]
call fcn.00415ba0
test eax, eax
je 0x437da8
mov ecx, esi
mov eax, 1
shl eax, cl
or dword [esp + 0x18], eax
mov ecx, dword [esp + 0x10]
test byte [ecx + 3], 8
je 0x437dd3
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x437dd3
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + edi]
push ecx
mov eax, ebp
call fcn.004300f0
add esp, 4
mov dword [esp + 0x28], eax
inc esi
add edi, 0x14
cmp esi, ebx
jl 0x437d80
mov edx, dword [esp + 0x10]
test byte [edx + 3], 8
je 0x437e13
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x437df8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
push 0xfffffffffffffffc
push edx
push 0x11
xor eax, eax
xor ecx, ecx
xor edx, edx
call fcn.004197c0
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
push 0xfffffffffffffffb
push eax
mov eax, dword [esp + 0xb0]
push 0x12
call fcn.004197c0
add esp, 0xc
mov dl, bl
mov eax, edi
call fcn.0040d660
test ebx, ebx
je 0x438216
mov ecx, dword [esp + 0x24]
mov esi, ebx
mov eax, ebp
call fcn.0040ec90
jmp 0x438216
push 0
push 0
push edi
mov ebx, ebp
call fcn.00430230
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x438216
mov eax, esi
call fcn.00414e90
mov dword [esp + 0x18], eax
mov eax, esi
call fcn.00414e90
mov dword [esp + 0x14], eax
push esi
mov eax, ebx
xor ecx, ecx
mov edx, 0xa
call fcn.00414e70
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push ecx
push edx
push edi
push ebp
call fcn.00434cf0
push esi
mov eax, ebx
mov ecx, 1
mov edx, 7
call fcn.00414e70
mov edx, dword [esp + 0x30]
mov ecx, esi
call fcn.0040d4e0
push esi
xor eax, eax
mov ecx, ebx
mov edx, 0x14
call fcn.00414e70
mov edx, dword [esp + 0x30]
add esp, 0x1c
mov ecx, esi
jmp 0x438211
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 8]
mov esi, dword [ecx + 0xc]
mov edi, dword [esi]
lea edx, [esp + 0x2c]
push edx
push eax
mov ebx, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
call fcn.00415d80
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x38]
push eax
push edi
call fcn.00415d80
mov edx, eax
mov eax, ebp
call fcn.0040ec00
mov edi, eax
mov eax, ebp
call fcn.0040ec00
mov ecx, dword [esp + 0x34]
push 0x10
push edi
push edx
push ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
push 0x50
push ebp
call fcn.004301d0
mov ebx, dword [esi + 0x14]
mov esi, dword [esp + 0x58]
mov edx, ebp
mov dword [esp + 0x40], ebx
call fcn.0040ec20
lea edx, [esp + 0x58]
push edx
push ebx
mov ebx, ebp
call fcn.00415d80
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x44]
push 0x10
push ebx
push eax
mov eax, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x58]
push 0x4e
push ebp
call fcn.004301d0
mov ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0x64]
add esp, 0x48
push ecx
push ebx
push edi
push 0x45
call fcn.00414dd0
add esp, 0x10
mov esi, edi
mov edx, ebp
call fcn.0040ec20
mov esi, ebx
call fcn.0040ec20
jmp 0x438216
mov edx, dword [edi + 8]
push ebx
push edx
push ebp
call fcn.00437710
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x438216
mov eax, dword [edi + 0x28]
movsx ecx, word [edi + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0xc]
inc eax
imul eax, dword [edi + 0x18]
lea ecx, [eax + ecx + 1]
push esi
mov eax, ebx
mov edx, 0x6d
call fcn.00414e70
mov di, word [edi + 0x1c]
add esp, 4
test di, di
jl 0x438216
movsx eax, di
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x10]
cmp byte [ecx + edx*8 + 0x16], 0x65
jne 0x438216
push esi
mov eax, ebx
mov ecx, 0x16
call fcn.00414e50
add esp, 4
jmp 0x438216
cmp dword [ebp + 0x1ac], ecx
jne 0x438048
push str.RAISE___may_only_be_used_within_a_trigger_program
mov edi, ebp
call fcn.00418b00
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret
cmp byte [edi + 1], 2
jne 0x438055
mov ecx, ebp
call fcn.0040f330
mov al, byte [edi + 1]
cmp al, 4
push 0
jne 0x438085
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + 4]
mov edi, dword [esp + 0x20]
push eax
push 6
xor eax, eax
mov ecx, 4
xor edx, edx
call fcn.004197c0
add esp, 0xc
jmp 0x438216
mov ecx, dword [edi + 4]
movsx esi, al
push ecx
mov ebx, ebp
call fcn.00420ee0
add esp, 8
jmp 0x438216
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x38], edx
call fcn.00414e90
mov edi, dword [edi + 8]
test edi, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], edi
je 0x438106
mov eax, edi
mov esi, eax
mov ecx, 0xc
lea edi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2c]
push ecx
push eax
mov ebx, ebp
call fcn.00415d80
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x44]
lea eax, [esp + 0x74]
add esp, 8
mov byte [esp + 0x3c], 0x84
mov byte [esp + 0x6c], 0x4c
mov dword [esp + 0x74], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x4381ba
mov ecx, dword [esp + 0x38]
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], eax
jmp 0x438128
mov ecx, dword [esp + 0x14]
mov eax, ebp
call fcn.0040ea90
mov eax, dword [esp + 0x10]
test eax, eax
je 0x43813f
mov ecx, dword [ecx]
mov dword [esp + 0x78], ecx
jmp 0x438145
mov edx, dword [ecx]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x1c]
call fcn.00414e90
mov ebx, eax
mov eax, dword [esp + 0x18]
push 8
push ebx
push eax
push ebp
call fcn.004351c0
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0xb8]
mov eax, dword [ecx + 0x14]
mov edi, ebp
call fcn.00415dc0
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
push esi
xor ecx, ecx
mov edx, 1
call fcn.00414e70
add esp, 0x14
mov ecx, 1
mov eax, ebp
call fcn.0040eaa0
mov edx, ebx
mov ecx, esi
call fcn.0040d4e0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
add ecx, 0x28
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], eax
jne 0x438124
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x4381ee
mov eax, ebp
call fcn.0040ea90
mov esi, dword [esp + 0xa8]
mov eax, dword [ecx + 0xc]
mov edi, ebp
call fcn.00415dc0
mov ecx, 1
mov eax, ebp
call fcn.0040eaa0
jmp 0x438209
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa8]
push edx
xor ecx, ecx
mov edx, 0xa
call fcn.00414e70
add esp, 4
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
call fcn.0040d4e0
mov esi, dword [esp + 0x2c]
mov edx, ebp
call fcn.0040ec20
mov esi, dword [esp + 0x30]
call fcn.0040ec20
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret