Function at 0x412150
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x45a310
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebp
push esi
push edi
mov eax, dword [0x475838]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x58], 0
call fcn.004012b0
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 1
call fcn.00401800
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x24]
push str.select__from_employees_where_empID
push ecx
call fcn.00402990
push 0x45f780
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x70], 2
call fcn.004028b0
add esp, 0x18
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x5c], 3
call fcn.00401160
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x58], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4121fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x58], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412220
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x18]
test ebp, ebp
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
mov dword [eax], ebp
je 0x41223b
lea ecx, [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea ecx, [esp + 0x28]
call fcn.00401930
lea ecx, [esp + 0x24]
mov edi, eax
call fcn.00401150
mov esi, eax
mov eax, dword [edi]
mov edi, dword [esi]
cmp edi, eax
je 0x412273
test eax, eax
mov dword [esi], eax
je 0x412267
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x412273
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
push edi
call edx
cmp dword [esi], 0
jne 0x412282
push 0x80004003
call fcn.004573a0
mov esi, dword [esi]
mov eax, dword [esi]
mov edx, dword [eax + 0x50]
lea ecx, [esp + 0x14]
push ecx
push esi
mov dword [esp + 0x1c], 0
call edx
test eax, eax
jge 0x4122a9
push 0x45f678
push esi
push eax
call fcn.004573b0
cmp word [esp + 0x14], 0
jne 0x412f38
mov ebp, 8
push str.empID
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 7
call fcn.00401150
mov esi, eax
cmp dword [esi], 0
jne 0x4122ec
push 0x80004003
call fcn.004573a0
mov ecx, dword [esi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 8
call fcn.00402130
mov esi, dword [eax]
test esi, esi
mov byte [esp + 0x58], 9
je 0x41232d
cmp dword [esi + 4], 0
jne 0x412328
mov eax, dword [esi]
push eax
call fcn.00457240
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x41232f
xor esi, esi
mov ecx, dword [esp + 0x10]
add ecx, 4
test esi, esi
jne 0x41233e
xor eax, eax
jmp 0x41234e
mov eax, esi
lea edi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412343
sub eax, edi
push eax
push esi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.empName
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0xa
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x4123a9
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0xb
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0xc
je 0x4123ea
cmp dword [edi + 4], 0
jne 0x4123e5
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x4123ec
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 8
test edi, edi
jne 0x4123fb
xor eax, eax
jmp 0x412410
mov eax, edi
lea ebp, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412400
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.depID
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0xd
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412465
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0xe
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0xf
je 0x4124a6
cmp dword [edi + 4], 0
jne 0x4124a1
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x4124a8
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0xc
test edi, edi
jne 0x4124b7
xor eax, eax
jmp 0x4124d0
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4124c0
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.empSex
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x10
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412525
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x11
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x12
je 0x412566
cmp dword [edi + 4], 0
jne 0x412561
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412568
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x10
test edi, edi
jne 0x412577
xor eax, eax
jmp 0x412590
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412580
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.marryState
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x13
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x4125e5
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x14
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x15
je 0x412626
cmp dword [edi + 4], 0
jne 0x412621
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412628
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x14
test edi, edi
jne 0x412637
xor eax, eax
jmp 0x412650
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412640
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.cultureLevel
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x16
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x4126a5
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x17
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x18
je 0x4126e6
cmp dword [edi + 4], 0
jne 0x4126e1
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x4126e8
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x18
test edi, edi
jne 0x4126f7
xor eax, eax
jmp 0x412710
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412700
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.empBirth
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x19
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412765
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x1a
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x1b
je 0x4127a6
cmp dword [edi + 4], 0
jne 0x4127a1
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x4127a8
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x1c
test edi, edi
jne 0x4127b7
xor eax, eax
jmp 0x4127d0
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4127c0
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.fromDate
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x1c
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412825
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x1d
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x1e
je 0x412866
cmp dword [edi + 4], 0
jne 0x412861
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412868
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x20
test edi, edi
jne 0x412877
xor eax, eax
jmp 0x412890
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412880
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.fromCorp
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x1f
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x4128e5
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x20
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x21
je 0x412926
cmp dword [edi + 4], 0
jne 0x412921
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412928
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x24
test edi, edi
jne 0x412937
xor eax, eax
jmp 0x412950
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412940
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.leaveDate
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x22
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x4129a5
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x23
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x24
je 0x4129e6
cmp dword [edi + 4], 0
jne 0x4129e1
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x4129e8
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x28
test edi, edi
jne 0x4129f7
xor eax, eax
jmp 0x412a10
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412a00
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.toCorp
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x25
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412a65
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x26
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x27
je 0x412aa6
cmp dword [edi + 4], 0
jne 0x412aa1
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412aa8
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x2c
test edi, edi
jne 0x412ab7
xor eax, eax
jmp 0x412ad0
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412ac0
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.curPosition
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x28
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412b25
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x29
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x2a
je 0x412b66
cmp dword [edi + 4], 0
jne 0x412b61
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412b68
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x30
test edi, edi
jne 0x412b77
xor eax, eax
jmp 0x412b90
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412b80
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.appointDate
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x2b
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412be5
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x2c
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x2d
je 0x412c26
cmp dword [edi + 4], 0
jne 0x412c21
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412c28
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x34
test edi, edi
jne 0x412c37
xor eax, eax
jmp 0x412c50
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412c40
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea ecx, [esp + 0x40]
push ecx
call esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x5c], 6
call esi
push str.payLevel
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x2e
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412ca5
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x44]
push edx
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x2f
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x30
je 0x412ce6
cmp dword [edi + 4], 0
jne 0x412ce1
mov eax, dword [edi]
push eax
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412ce8
xor edi, edi
push edi
call fcn.0044278b
mov ecx, dword [esp + 0x14]
fstp dword [ecx + 0x38]
add esp, 4
lea ecx, [esp + 0x14]
call fcn.00401490
lea edx, [esp + 0x40]
push edx
call esi
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x5c], 6
call esi
push str.contactAdd
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x31
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412d46
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x32
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x33
je 0x412d87
cmp dword [edi + 4], 0
jne 0x412d82
mov ecx, dword [edi]
push ecx
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412d89
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x3c
test edi, edi
jne 0x412d98
xor eax, eax
jmp 0x412db0
mov eax, edi
lea ebp, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412da0
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea edx, [esp + 0x40]
push edx
call esi
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x5c], 6
call esi
push str.contactNum
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x34
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412e05
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x35
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x36
je 0x412e46
cmp dword [edi + 4], 0
jne 0x412e41
mov ecx, dword [edi]
push ecx
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412e48
xor edi, edi
mov ecx, dword [esp + 0x10]
add ecx, 0x40
test edi, edi
jne 0x412e57
xor eax, eax
jmp 0x412e70
mov eax, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x412e60
sub eax, ebp
mov ebp, 8
push eax
push edi
call fcn.00401fe0
lea ecx, [esp + 0x14]
call fcn.00401490
lea edx, [esp + 0x40]
push edx
call esi
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x5c], 6
call esi
push str.state
mov word [esp + 0x34], bp
call fcn.004570b0
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0x37
call fcn.00401150
mov edi, eax
cmp dword [edi], 0
jne 0x412ec5
push 0x80004003
call fcn.004573a0
mov ecx, dword [edi]
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00401ca0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 0x38
call fcn.00402130
mov edi, dword [eax]
test edi, edi
mov byte [esp + 0x58], 0x39
je 0x412f06
cmp dword [edi + 4], 0
jne 0x412f01
mov ecx, dword [edi]
push ecx
call fcn.00457240
mov dword [edi + 4], eax
mov edi, dword [edi + 4]
jmp 0x412f08
xor edi, edi
push edi
call fcn.004428d4
mov edx, dword [esp + 0x14]
add esp, 4
lea ecx, [esp + 0x14]
mov dword [edx + 0x44], eax
call fcn.00401490
lea eax, [esp + 0x40]
push eax
call esi
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x5c], 6
call esi
mov ebp, dword [esp + 0x18]
lea ecx, [esp + 0x24]
call fcn.00401300
test ebp, ebp
mov byte [esp + 0x58], 1
je 0x412f7f
lea edx, [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x412f7f
mov eax, dword [ebp]
test eax, eax
je 0x412f66
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 4]
test eax, eax
je 0x412f76
push eax
call fcn.00425c92
add esp, 4
push ebp
call fcn.00425c92
add esp, 4
lea ecx, [esp + 0x24]
mov byte [esp + 0x58], 0
call fcn.004012d0
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
mov dword [esp + 0x58], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412fb5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x4c
ret 4